打开文件表、文件描述符、打开的文件句柄以及i |
您所在的位置:网站首页 › 打开文件句柄数太多有什么影响 › 打开文件表、文件描述符、打开的文件句柄以及i |
概念: 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 |