【Linux系统编程学习】 文件描述符

【Linux系统编程学习】 文件描述符,第1张

【Linux系统编程学习】 文件描述

此为牛客网Linux C++课程1.19课程笔记。

1. 文件描述符表


如图,我们知道每个进程都有其虚拟地址空间(0~4G),其中3 ~ 4G部分为内核区。进程的进程控制块保存就在内核区,而PCB中维护一个打开文件描述符表,每个进程都有这样一张表,表在实现上是一个指针数组,数组中每个元素都是一个指向file类型的指针,也就指向一个打开的文件。

而文件描述符就是该文件描述符表的的索引值,也就是序号,每当打开一个新文件,则占用一个文件描述符,而且是空闲的最小的一个文件描述符。

文件描述符表的前三项是固定的,分别是标准输入、标准输出和标准错误,对应的文件是当前终端。

2. 如何通过文件描述符找到文件

首先用文件描述符找到文件描述符表的文件指针,用这个文件指针去系统维护的打开文件表中找i-node,通过i-node最后找到硬盘中文件的最终位置,具体可参考:

https://blog.csdn.net/qq_28114615/article/details/94590598

http://www.itqiankun.com/article/file-fd

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/3988855.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-10-21
下一篇 2022-10-21

发表评论

登录后才能评论

评论列表(0条)

保存