内核记录打开文件的所有信息,而应用程序只需记住描述符
内核用三种数据结构来表示打开的文件:
- 描述符表 --每个进程有自己独立的描述附表,他的表项是由进程打开的文件描述符来索引的,打开的文件描述符指向文件表的一个表项
- 文件表--打开文件的集合用一张文件表表示,所有进程共享,文件表项包括当前文件位置,引用计数即指向当前文件表项的引用计数
- v-node表--所有进程共享,每个表项包含stat结构体中的大多信息 包括st_mode和st_size成员 每个文件表项有一个v-node项
(深入理解计算机系统)