linux文件系统的处理函数

文件系统
        通用:rename(原路径名,新路径名);  修改文件名
              remove(路径名);     删除文件或路径
              symlink(原路径名,符号链接名);   建立文件或路径的软链接
              access(路径名,权限);     权限:F_OK(是否存在) R_OK W_OK X_OK 的任意组合
              lstat/stat/fstat(路径名,struct stat *buf);  取得文件详细信息
              xxx_t 一般是tepedef起的类型别名,绝大多数是整数类型的数据,目的是见面知意。一般在<sys/type.h>中定义
              chmod(路径名,权限);  修改文件或目录的权限
               getpwuid(uid)/getpwnam(用户名)   获取用户的信息
              struct tm* localtime(time_t time);  //UTC 转换为时分秒格式
              time_t mktime(struct tm*);  本地时间转换成UTC
        目录
              DIR* opendir(目录路径);  //打开指定目录,返回一个指针代表这个目录打开,失败返回NULL。
              struct dirent* readdir(DIR*);  //一次从目录中读取一项(一个文件或目录)信息。返回一个结构体指针,指向包含目录入口信息的结构变量。
              struct dirent的定义没有规定统一,但一定有一个d_name的成员保存文件或目录名,没有路径。读完了或失败返回NULL.
              closedir(DIR*);
              telldir/seekdir/...  头文件<dirent.h>
              chdir(目录路径);  //把当前目录设置为指定目录
              getcwd(字符数组,数组长度);  //取得当前路径,绝对路径
              mkdir(目录路径, 权限);  //按指定权限创建路径
              rmdir(目录路径);  //删除指定的空目录
        文件:
              unlink(文件路径)  //删除文件
              ssize_t readlink(const char* path, char* buf, size_t buf_size);   //读软链接文件(目标路径)到buf(不会自动加\0)
              int open(const char * path, int mode[,权限])  //打开文件,返回一个文件描述符,失败返回-1
                  打开方式:O_RDONLY = 0,O_WRONLY=1,O_RDWR=2三选一,O_APPEND追加 O_CREAT文件不存在就创建  O_TRUNC以写方式打开文件时,情空原有文件内容
                  O_EXCL和O_CREAT一起表示必须新建一个文件,如果文件已经存在打开就失败  O_NONBLOCK不阻塞
              ssize_t wirte(int fd, char *buf, size_t buf_size);  //返回成功写入文件的字节数,失败返回-1
              ssize_t read(int fd, char *buf, size_t buf_size)    //依次读取数据,返回读取的字节数,失败返回-1,返回0表示读到文件尾。
              int close(int fd);   //关闭一个打开的文件,清空文件缓存区  
              void sync(void);     //文件缓存写到磁盘
              int fsync(int fd);   //文件缓存写到磁盘
              void syncfs(int fd);    //文件缓存写到磁盘
              lseek(int fd, off_t offset, int whence)   //指定一个打开文件的下次开始读写的位置,参考点:SEEK_SET SEEK_CUR SEEK_END,
                   返回从文件头开始的偏移量 允许指定超过文件尾的偏移,中间部分会形成空洞,数据为0。
              int truncate(const char *path, off_t length)  //截断文件成指定大小
              ftruncate(int fd, off_t length)        //截断文件成指定大小
              umask(mode)  //设置文件创建时需要屏蔽的权限
              dup dup2 //复制文件描述符
              特殊文件描述符:0标准输入设备文件 1标准输出设备文件 2标准错误输出设备文件 
              标准输出从定向:
                  > /dev/null
                  > /dev/null 2> dev/null
                  > /dev/null 2>&1
                  >& /dev/null
              特殊文件:/dev/tty当前设备终端   /dev/pts/n标号为n的虚拟终端  /dev/null空设备文件  /dev/zero
              fcntl(文件描述符,命令,结构指针struct flock*)   //功能很多,一般用于给文件加锁
              int fcntl(int fd, int cmd, .../*arg*/);  // cmd: F_GETLK(取得锁信息)/F_SETLK(加锁)/F_SETLKW(加锁直到成功为止)
                  struct flock
                  {
                      l_type;  //锁类型,F_RDCLK F_WRCLK F_UNCLK; 多个读锁可以共存,多个写锁和读锁不能同时存在,谁加的锁谁解
                      l_start;  //开始位置
                      l_whence;  //偏移位置
                      l_len;  //加锁字节长度
                      l_pid;   //哪个进程加的锁
                  }
              
              ioctl  //调用驱动程序接口,不用驱动使用的参数及其含义不同
              int ioctl(int fd, unsigned long request, ...);
              
              文件操作:
                  系统 read write
                  C语言 fread fwrite fgetc fputc fgets fputs fscanf fprintf
                  C++ ifstrean ofstream
                  
              mmap:可以把文件映射到内存中,可以像内存一样访问文件。
                   void *mmap(void *addr, size_t length, int prot, int flags, int fd, off_t offset);
                   int munmap(void *addr, size_t length);

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值