什么是"文件表项"

从Linux的层次角度来说,在用户空间是存在这样的概念的,这个概念是存在内核空间的,而且是针对打开的文件的!

内核用三种数据结构来描述一个打开的文件。

数据结构一:

文件描述符表(descriptor table):

每个进程都有它独立的描述符表,它的表项是由进程打开的文件描述符来索引的。每个打开的文件描述符表项指向文件表中的一个表项。形象化的表示应该是这个样子.

数据结构二:

·打开的文件表(fìle table) 。

所有"打开的文件"的集合!所有进程共享这张表!打开的文件表的表项,即是文件表项.

文件表项的内容包含:

当前的文件位置、引用计数(referencecount) (即当前指向该表项的描述符表项数),以及一个指向v-node 表中对应表项的指针。打开文件的集合是由一张文件表来表示的,所有的进程共享这张表。

文件表项的样子:

数据结构三:

v-node 在(v-node table) 。同文件表一样,所有的进程共享这张v-node 表。每个打开的文件(或设备)都有一个V节点(v-node)结构.v节点包含了"文件类型" 、对该文件进行各种操作的函数指针。注: 对大多数文件来说,v节点还包含了该文件的i-node节点这些信息是在打开文件是从磁盘上读入内存的,所以所有关于文件的信息都是快速可供使用的!

i-node节点包含的信息:

1>.文件所有者

2>.文件长度

3>.文件所在的设备

4>.指向文件实际在磁盘上所在位置的指针

三者之间的关系如下图所示:

(CWY注:这里的"文件表"指的是打开的文件表集合!)

每个文件表的表项组成(针对我们的目的)包括有当前的文件位置、引用计数(referencecount) (即当前指向该表项的描述符表项数),以及一个指向v-node 表中对应表项的指针。关闭一个描述符会减少相应的文件表表项中的引用计数。内核不会删除这个文件表表项,直到它的引用计数为零“文件表项”--file table entry的含义,从英文的名字可以更好的理解他的含义,即文件表入口或是文件表条目等!即使

"文件表项"实际上就是一张"文件信息表"。 非要找个实物来的话,看看上图的"房产信息申请表"大概就知道了!就是列了很多项,在对应的项需要填写对应的信息!那么文件表项中都有哪些信息呢??每个文件表项包含如下信息:

<1>.文件状态标志( 读,写,追加,同步和非阻塞等 )

<2>.当前文件偏移量

<3>.指向该文件v节点表项的指针

画成图大概就是这个样子!文件表项:即文件表表项,总结:

嵌入式物联网需要学的东西真的非常多,千万不要学错了路线和内容,导致工资要不上去!

无偿分享大家一个资料包,

差不多150多G。里面学习内容、面经、项目都比较新也比较全!某鱼上买估计至少要好几十。(点击找小助理领取)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值