相关函数: open
头文件 : #include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
函数原型: int open(const char *pathname, int flags);
int open(const char *pathname, int flags, mode_t mode);
函数说明: 参数pathname指向要打开的文件路径字符串。
参数flags含义如下:
O_RDONLY 以只读方式打开文件
O_WRONLY 以只写方式打开文件
O_RDWR 以读写方式打开文件。
O_CREAT 若要打开的文件不存在则创建该文件
O_EXCL 如果O_CREAT也被设置,此选项会去检查文件是否存在。文件若不存在则建立该文件,否则出错
O_NOCTTY 如果要打开的文件为终端机设备时,则不会将该终端机当成进程控制终端机
O_TRUNC 若文件存在且以可写的方式打开时,此选项会把文件长度清为0
O_APPEND 写入的数据会以附加的方式加入到文件末尾
O_NONBLOCK 以非阻塞的方式打开文件
参数mode含义如下:
S_IRWXU 00700,代表文件所有者具有读、写和执行的权限
S_IRUSR 00400, 代表文件所有者具有读的权限
S_IWUSR 00200, 代表文件所有者具有写的权限
S_IXUSR 00100, 代表文件所有者具有执行的权限
S_IRWXG 00070, 代表文件所属组具有读、写和执行的权限
S_IRGRP 00040, 代表文件所属组具有读的权限
S_IWGRP 00020, 代表文件所属组具有写的权限
S_IXGRP 00010, 代表文件所属组具有执行的权限
S_IRWXO 00007, 代表其他用户具有读、写和执行的权限
S_IROTH 00004, 代表其他用户具有读的权限
S_IWOTH 00002, 代表其他用户具有写的权限
S_IXOTH 00001, 代表其他用户具有执行的权限
返回值 : 操作成功返回要打开文件的文件描述符,否则返回-1
相关函数: close
头文件 : #include <unistd.h>
函数原型: int close(int fd);
函数说明: 当使用完文件后可以用close()关闭该文件。参数fd是之前用open打开的文件描述符
返回值 : 若文件顺利关闭则返回0,否则返回-1
相关函数: read
头文件 : #include <unistd.h>
函数原型: ssize_t read(int fd, void *buf, size_t count);
函数说明: 从参数fd所指向的文件中读取count个字节到buf指向的内存中
返回值 : 返回实际读取的字节数,如果返回0表示已到达文件尾或无数据可读
相关函数: write
头文件 : #include <unistd.h>
函数原型: ssize_t write(int fd, const void *buf, size_t count);
函数说明: 把参数buf指向的内存中count个字节的内容写到fd所指向的文件内
返回值 : 返回实际写入的字节数,如有错误发生返回-1
相关函数: lseek
头文件 : #include <unistd.h>
#include <sys/types.h>
函数原型: off_t lseek(int fd, off_t offset, int whence);
函数说明: 每个已打开的文件都有一个读写位置。当打开文件时通常读写位置是指向文件开始;若是以附加的方式打开,则读写位置会指向文件尾。对文件的读写操作会引起读写位置的变化。
参数fd为已打开的文件描述符
参数offset为根据参数whence来移动读写位置的偏移量
参数whence为移动读写位置的基准点,含义如下:
SEEK_SET 文件的开始处为基准点
SEEK_CUR 文件的当前位置为基准点
SEEK_END 文件的末尾为基准点
返回值 : 返回实际写入的字节数,如有错误发生返回-1
相关函数: sync
头文件 : #include <unistd.h>
函数原型: int sync(void);
函数说明: 把系统缓冲区数据写回磁盘,确保数据同步
返回值 : 操作成功返回0,否则返回
标签:文件,include,函数,int,fd,IO,权限 From: https://www.cnblogs.com/cnetsa/p/17003184.html