内核用于I/O的数据结构

内核用于I/O的数据结构

  一个进程除了指令、数据之外还会有一些信息用于记录进程的状态(这是程序所没有的)。在这些记录中就有一个表称之为文件描述表,而文件描述符就是这张文件描述表的索引。
  下面是一张文件描述符表的示意图,除了文件描述符表之外还画出了其它与之相关的信息:
在这里插入图片描述

文件描述表

  文件描述表是进程记录表项中的一部分,文件描述表的每一条记录又有文件描述符标志和文件指针构成。
  文件描述符标志记录着文件描述符的状态,此篇笔记不做记录。而文件指针指向另一张称为文件表项的表。

文件表项

  文件表项的组成如最前面的图所示。

  • 文件状态标志:记录着文件描述符所对应的文件的状态,如只读、只写、读写等等。
  • 当前文件偏移量:即将要进行读写操作的位置,具体查看lseek的系统调用
  • v节点指针:v节点指针又指向另一张称为v节点表项的表。

v节点表项

  每一个打开了的文件(或者说有对应文件描述符的文件)都会有一个v节点结构。称为v节点的结构包含了文件类型以及对此文件进行各种操作函数的指针。最后v节点结构还包含了一个索引节点称之为i节点。
  i节点包含了文件的所有者、文件长度、指向文件实际数据块在磁盘上所在位置的指针等。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值