打开文件表、文件描述符、打开的文件句柄以及i

您所在的位置:网站首页 打开文件句柄数太多有什么影响 打开文件表、文件描述符、打开的文件句柄以及i

打开文件表、文件描述符、打开的文件句柄以及i

2024-07-15 14:05| 来源: 网络整理| 查看: 265

概念: 1.进程级的文件描述表,(open file description)就是我们常常在代码中使用的int fd变量,由open函数返回。

2.系统级的打开文件表,这是内核对所有打开文件维护的一个描述表格,将表格中的每一项称为打开文件句柄。它存储了

一个打开文件的所有相关信息,例如当前文件的偏移量,访问模式,状态等等。

3.i-node信息,文件系统中的每个文件都有自己的i-node信息,它包含文件类型,访问权限,文件属性等等。

下面用一个表格表示他们内容 在这里插入图片描述 下面描述他们三者之间的关系 在这里插入图片描述 在进程A中,文件描述符1和30都指向了同一个打开的文件句柄(#23),这可能是该进程多次对文件执行打开操作? (测试:同进程,前后两次对同文件同样打开,设置不同偏移量—>写入结果不同,有可能是打开文件句柄不同)

进程A中的文件描述符2和进程B的文件描述符2都指向了同一个打开的文件句柄(#73),这种情况有几种可能, 1.进程A和进程B可能是父子进程关系; 2.进程A和进程B打开了同一个文件,且文件描述符相同(低概率事件=_=) 3.A、B中某个进程通过UNIX域套接字将一个打开的文件描述符传递给另一个进程。

进程A的描述符0和进程B的描述符3分别指向不同的打开文件句柄,但这些句柄均指向i-node表的相同条目(#1936),换言之,指向同一个文件。发生这种情况是因为每个进程各自对同一个文件发起了打开请求。同一个进程两次打开同一个文件,也会发生类似情况。

所以通过以上总结,可以得出以下结论: 1.每个文件描述符会与每个文件相对应 2.不同的文件描述符也有可能指向同一个文件 3.相同的文件可以被不同进程打开。同一个进程可以多次打开同一个文件。



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3