文件描述符是如何生成的?

2017-06-28 18:11:54 +08:00
 thomaswang
"文件描述符的范围是 0 ~ O P E N M A X (见表 2 - 7 )。早期的 U N I X 版本采用的上限值是 1 9 (允许
每个进程打开 2 0 个文件),现在很多系统则将其增加至 6 3。"

不同进程可能出现相同的文件描述符?
2339 次点击
所在节点    程序员
6 条回复
geelaw
2017-06-28 18:22:16 +08:00
当然,因为 fd 是进程访问文件对象的 handle,每个进程有自己的 fd table。
misaka19000
2017-06-28 18:27:11 +08:00
fd 本身是对于进程而言的
snnn
2017-06-28 21:25:31 +08:00
文件描述符表并不是一个进程一个
sagaxu
2017-06-28 21:28:54 +08:00
现代系统默认都 65536 个了吧,63 个是 80 年代的系统吗?
buf1024
2017-06-28 22:13:49 +08:00
对应每个进程,内核维护一张打开文件描述符的表,表项里面有一个指向文件表的指针,文件表里面记录下文件当前位移文件状态等与进程相关的文件信息,同时包括一个指向 V 节点的指针,V 节点包括了 i 节点信息。不同的进程可能出现同样数值的文件描述符,但所记录的文件表信息是不一样的。
thomaswang
2017-06-28 22:44:41 +08:00
@buf1024 多谢

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/371740

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX