当前位置:首页 > 嵌入式培训 > 嵌入式学习 > 讲师博文 > 什么是"文件表项"

什么是"文件表项" 时间:2018-09-26      来源:未知

从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节点表项的指针

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

上一篇:基于epoll的Linux并发服务器

下一篇:裸机程序开发之UART

热点文章推荐
华清学员就业榜单
高薪学员经验分享
热点新闻推荐
前台专线:010-82525158 企业培训洽谈专线:010-82525379 院校合作洽谈专线:010-82525379 Copyright © 2004-2022 北京华清远见科技集团有限公司 版权所有 ,京ICP备16055225号-5京公海网安备11010802025203号

回到顶部