int open(const char *pathname, int flags);
int open(const char *pathname, int flags, mode_t mode);
--pathname:文件路径
--flags:
O_CREAT O_WRONLY O_RDONLY O_RDWR O_APPEND
--mode 权限设置 such as 0664 0775
--返回值 int类型的文件描述符fd
int close(int fd); 关闭文件
ssize_t read(int fd, void *buf, size_t count); 读取文件内容至buf
fd:文件描述符
buf:一般用一个数组指示 类似 char buf[1024]
count:传入数组的长度,一般用sizeof(buf)
返回值:返回读取到的长度,返回值为0表示读取完了,小于0表示发生错误。
ssize_t read(int fd, void *buf, size_t count); 将buf的内容写入文件,参数同上。
off_t lseek(int fd, off_t offset, int whence); 返回文件的指针
fd:文件描述符
offset 偏移量, 一般取0;
whence:
SEEK_SET SEEK_CUR SEEK_END
int stat(const char *pathname, struct stat *statbuf);
作用:获取一个文件相关的一些信息
参数:
- pathname:操作的文件的路径
- statbuf:结构体变量,传出参数,用于保存获取到的文件的信息
返回值:
成功:返回0
失败:返回-1 设置errno
int lstat(const char *pathname, struct stat *statbuf);
参数:
- pathname:操作的文件的路径
- statbuf:结构体变量,传出参数,用于保存获取到的文件的信息
返回值:
成功:返回0
失败:返回-1 设置errno
int access(const char *pathname, int mode);
作用:判断某个文件是否有某个权限,或者判断文件是否存在
参数:
- pathname: 判断的文件路径
- mode:
R_OK: 判断是否有读权限
W_OK: 判断是否有写权限
X_OK: 判断是否有执行权限
F_OK: 判断文件是否存在
返回值:成功返回0, 失败返回-1
int truncate(const char *path, off_t length);
作用:缩减或者扩展文件的尺寸至指定的大小
参数:
- path: 需要修改的文件的路径
- length: 需要最终文件变成的大小
返回值:
成功返回0, 失败返回-1
int chmod(const char *pathname, mode_t mode);
修改文件的权限
参数:
- pathname: 需要修改的文件的路径
- mode:需要修改的权限值,八进制的数
返回值:成功返回0,失败返回-1
int fcntl(int fd, int cmd, ...);
参数:
fd : 表示需要操作的文件描述符
cmd: 表示对文件描述符进行如何操作
- F_DUPFD : 复制文件描述符,复制的是第一个参数fd,得到一个新的文件描述符(返回值)
int ret = fcntl(fd, F_DUPFD);
- F_GETFL : 获取指定的文件描述符文件状态flag
获取的flag和我们通过open函数传递的flag是一个东西。
- F_SETFL : 设置文件描述符文件状态flag
必选项:O_RDONLY, O_WRONLY, O_RDWR 不可以被修改
可选性:O_APPEND, O)NONBLOCK
O_APPEND 表示追加数据
NONBLOK 设置成非阻塞