第三章 文件IO
3.1 引言
unix大多数文件的IO只需要用到5个函数:open read write lseek close
不同的缓冲长度,对read 和 write 函数 有影响
3.2 文件描述符
对于内核而言,所有打开的文件,都通过文件描述符引用、文件描述符是一个非负整数、
当打开一个文件。或者创建一个新文件,内核向进程返回一个文件描述符。打开文件是一个进程。
当使用open creat 返回一个文件描述符标识一个文件,并将其作为参数传递给read和write。
文件描述符 0与标准输入关联,文件描述符1与标准输出关联,文件描述符2与标准错误关联。
幻数 0,1,2已经在POSIX.1标准化,我们使用
STDIN_FILENO STDOUT_FILENO 和STDERR_FILENO 作为标准IO的,这几个常量在
<unistd.h>中定义
文件描述符 范围 是
第4章:Unix文件和目录
本章描述文件系统的其他属性和文件的性质。
4.2 函数stat fstat fstatat lstat
#include <sys/stat.h>
int stat(const char *restrict pathname, struct stat *restrict buf);
int fstat(int fd, struct stat *buf);
int lstat(const char *restrict pathname, struct stat *restrict buf)
int fstatat(int fd, const char *restrict pathname, struct stat *restrict buf, int fd)
这4个函数的返回值,若成功则返回0;若出错返回-1