标签:
Unix内核中已经打开文件,通过三种数据结构表示:
3. 每个打开文件都有且只有一个V节点(v-node)结构
一个打开的文件的结构如下图所示:
这些信息都是打开文件时从磁盘读入内存的
为什么要有V节点结构呢?对在一个计算机系统上的多文件系统类型提供支持。也称之为虚拟文件系统(所以v-node中的v指的是virtual?)linux没有将相关数据结构分为i-node和v-node,而是采用了一个独立于文件系统的i节点和一个依赖于文件系统的i节点
每个进程都只有自己的进程表项,故而每个进程都有自己的文件表项,但是文件可以被多个进程各自打开而每个打开文件都有且只有一个V节点表,于是会有多个文件表项指向同一个V节点表的情况。
而为什么每个进程都有自己的文件表项而不是每个打开文件都只有一个文件表项呢?首先要知道文件表中的当前文件偏移量指的是每次write之后表示增加缩写的字节数,所以每个进程对应一个文件表保证了每个进程都有自己对该文件的当前偏移量。
标签:
原文地址:http://www.cnblogs.com/Chilly2015/p/5808353.html