进程表中有一个文件描述符表,这个文件描述符表记录了进程打开的文件描述符、其close_on_exec标志,以及一个指向文件表的指针。文件每打开一次(API的open或者C的fopen),内核就创建一个文件表,这个文件表包含,文件状态标志(读、写、添加、同步、非阻塞等)、当前文件偏移量、指向该文件v节点的指针。
文件描述符表 文件描述符 文件描述符标志 文件表指针
文件表 文件标志 当前文件偏移量 v节点表指针
v节点表 v节点信息 i节点信息 当前文件长度
v节点信息:文件类型(普通文件、块文件、FIFO等)、对该文件进行各种操作的函数的指针。
i节点信息:文件的所有者、文件长度、文件所在的设备、指向文件实际数据块在磁盘上的位置的指针等。