【UNIX环境高级编程】【详细解析用open打开的文件数据结构】


前言

在学习Linux系统编程的过程中,往往需要系统性的学习一套完整的书籍,系统性地了解有关Linux系统相关的各部分知识,这部分知识点中最为常见的就是文件系统。本篇主要讨论文件系统的基础部分,即用open打开的文件数据结构。

一、用open打开的文件数据结构是什么?

通常,我们打开系统上的某个文件使用open函数,而该文件被open函数打开成功后,会在当前进程的进程表项中生成一项记录,因为每个进程中存在一个进程表项,记录表项中包含一个文件描述符表,文件描述符表中每一项记录包含文件描述符标志和一个指向文件表项的指针
文件描述符标志:描述文件当前是否打开、关闭、正在运行等状态。
指向文件表项的指针:包含三项,文件状态标志、当前文件偏移量、以及一个指向V节点的指针。

二、文件表项的数据结构是什么?

文件表项中包含三项,具体的数据结构为:
文件状态标志:如当前文件状态为只读、只写、可读可写、追加、非阻塞等状态。
当前文件偏移量:自文件头部起始位置到当前正在写入的位置,一般为长整型数据。
指向V节点的指针:包含V节点结构(V-node)。V节点结构包含了文件类型和对文件进行各种操作的函数的指针,还包含了i节点。

三、V节点结构的数据结构是什么?

文件类型:七大文件类型,如文本文件、设备文件、硬链接文件、软连接文件、(磁盘)块文件、管道文件等。
对文件进行各种操作的函数:文件读、文件写、关闭文件、移动文件偏移量等函数。
i节点:该文件的索引节点,记录文件的所有者等信息。

四、i节点结构的数据结构是什么?

i节点包含了文件的所有者、当前文件的长度、指向文件实际数据块在磁盘上所在位置的指针等。

总结

以上就是今天要讲的内容,本文仅仅简单介绍了我们用open打开的文件数据结构,而通过了解该数据结构能使我们更加便捷地获取和修改文件的属性和参数。无论普通文件还是设备文件,都能从中获取需要的信息。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值