内核使用3钟数据结构表示打开文件,它们之间的关系决定了在文件共享方面一个进程对另一个进程可能产生的影响。
(1)、在每个进程表中都有一个记录项,记录项中包含有一张打开文件描述符表,可将其视察为一个矢量(数组),每个描述符占用一项。与每个文件描述符相关联的是:
(a)、文件描述符标志。
(b)、指向一个文件表项的指针。
(2)、内核为所有打开的文件维持一张文件表(同一个文件可以被打开多次,所以同一个文件可以在文件表中占有多项)。每个文件表项包含:
(a)、文件状态标志(读、写、添写、同步和非阻塞等)
(b)、当前文件偏移量(不同的进程当前的文件偏移量是不同的,你想两个不同的进程对同一个文件的操作可能都不一样,那当然文件偏移量是不一样的)
(c)、指向该文件的V节点表项的指针。
(3)、每个打开文件(或设备)都有一个v节点(这个v节点,对于一个给定的文件只有一个v节点表项,即时不