第三章 文件IO
一:主要内容:
本章主要讲述UNIX系统中的文件系统,包括文件信息的记录方式;文件的函数;文件的共享等。
二:文件描述符
对于内核来说,所有打开的文件都是用文件描述符来标识的,文件描述符是一个非负整数。每当一个文件打开或者创建时,内核都会想进程返回一个文件描述符来标识该文件,这个描述符可以用来进行其他操作,说白了就是内核区别多个打开文件的一个flag。
值得一提的是,UNIX已经提前将三个文件描述符与标准输入输出和错误相关联,这三个文件描述符就是0、1、2.其中0对应标准输入,1对应标准输出,2对应标准错误。
文件描述符存在一个变化范围:0-OPEN_MAX-1。早期的系统上限值为19,现在很多系统都将其增加值63.
三:函数open和openat
这两个函数可以打开或者创建一个文件,函数声明如下:
int open(const char *path, int oflag, ...);
int openat(int fd, const char *path, int oflag, ...);
path代表文件路径,oflag代表了文件的一些说明,如是否为只读打开,是否为追加模式,是否对path为非目录是返回错误等等。
值得一提的是,这两个函数所返回的文件描述符一定是未使用的文件描述符值最小的那个。
op