1 文件描述符
打开文件的过程:
(1)OS内核跟踪进程打开的文件,并为其创建一个结构体(struct_file),该结构体中维护着打开文件的状态和信息,如:文件指针、文件在磁盘中所在位置、访问权限、inode元信息等。
(2)为了建立进程与文件的联系,进程PCB维护着一个结构体(struct_files),该结构体中最重要的就是包含了一个指针数组,数组中每个指针指向进程打开的文件(内核中的结构体)。多个这样的结构体,组成了打开文件表,每一个结构体称为打开文件句柄。
文件描述符(file descriptor)本质上就是该数组的下标。上面的过程,总结一下就是:进程每打开一个文件,都会为该文件分配一个文件描述符。因此,在OS层面,文件描述符是一个文件的唯一标识。