要想对open 和close进行更为深入的理解,首先要理解一个结构关系如下图所示:
首先文件描述符是归进程所有的,
一、如果一个进程引用了open
①那么他就建立一个文件表,和V节点表。
②并将文件描述符指向该文件表,同时将文件表中的v节点指针指向V节点表。
二、文件表中的信息有:
①文件状态标志,主要标明了文件描述符的性质而不是文件的性质!!!,即只读、只写、读写、追加写、长度截短为0等等
②当前文件偏移量。这个文件偏移量是所有文件描述符共享的,多个文件描述符指向同一个文件的话,他们的当前文件描述符应该相同。
要强调的是:文件状态标志:是跟随文件描述符的而不是跟随文件的!!!
三、V节点中的信息有:
v节点信息:主要包含了文件的类型,和对此文件进行各种操作的函数的指针。
i节点信息:i节点主要是标明了文件系统中文件名与其数据存储之间的关系。即怎样通过文件名找到文件的数据。
当前文件长度。
要强调的是:V节点是跟随文件的。即和文件是意义