2017-08-21 42 views
0

我想在内核空间中编写代码来查找系统中所有打开的文件句柄以及支持这些句柄的process id如何获取内核空间代码中的所有打开的文件句柄?

在用户空间中,我们可以使用实用程序“lsof”来实现。同样,我想在内核空间相同。

+0

我正在投票关闭这个问题作为脱离主题,因为Stackoverflow不是一个代码写入服务 –

+0

我需要的概念或方法从内核空间获取所有打开的文件句柄 –

回答

0

Linux内核最棒的地方在于它是开源的。如果你想了解如何实现类似于lsof的东西,为什么不检查它的源代码(我建议the following implementation, from Android 4.2.2 source tree,它是简化和更容易理解)或strace了解它是如何发生的?

如果你这样做,在某些时候,你会遇到以下行

openat(AT_FDCWD, "/proc/<PID>/fd", O_RDONLY|O_NONBLOCK|O_DIRECTORY|O_CLOEXEC) 

这将提示您,对于每个正在运行的PID,procfs能够打印所有打开的文件信息这个过程所持有的描述符。因此,this是我通过代码开始我的研究和旅程的地方。

相关问题