文件描述符、文件表项指针、inode节点的关系

内核使用3种数据结构表示打开的文件,他们之间的关系决定了在文件共享方面一个进程对另一个进程的影响。

(1) 每个进程在进程表中都有一个纪录项,纪录项中包含一张打开文件描述符表,每个文件描述符各占一项,与每个文件描述符相关的是

    a. 文件描述符标志

    b. 指向一个文件表项的指针

(2) 内核为所有打开文件维护一张文件表项,每个文件表项包含:

    a. 文件状态(读 写 同步 非阻塞等)

    b. 当前文件偏移量

    c. 指向改文件V节点(i节点)的指针

(3) 没打开一个文件或设备,都有一个V节点结构,V节点包含了文件类型和对此文件进行操作函数的指针,对于大多数文件,v节点还包含了文件的i节点索引节点,这些信息是在打开文件时从磁盘读入内存的,所以,文件的所有文件信息都是随时可用的。i节点包含了文件的所有者,文件长度,指向文件实际数据块在磁盘上位置的指针等。

 

以上总结大部分来自 《APUE》

用图来表示如下:

 

讲的比较好的博客:

  http://www.ruanyifeng.com/blog/2011/12/inode.html

  http://blog.csdn.net/jnu_simba/article/details/8806654

转载于:https://www.cnblogs.com/how-are-you/p/5699257.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值