unix中的v节点和i节点


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

  • (1)每个进程都有一个进程表,表的每一项代表了一个打开的文件。表项中包含的内容如下
    • a.文件描述符 fd。
    • b.指向一个文件表项的指针。
  • (2)内核为所有打开文件维持一张文件表。每个文件表项包含:
    • a.文件状态标志(读、写、添写、同步和非阻塞等)
    • b.当前文件偏移量
    • c.指向该文件V节点表项的指针
  • (3)每个打开文件(或设备)都有一个v节点结构,每个v节点结构包含:
    • a.文件类型
    • b.对文件的各种操作函数指针
    • c.i节点(大多数文件)

Linux中没有使用V节点而是直接使用了i节点

三张表的对应关系如下
打开文件内核数据结构


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM