我看到的所有资料都建议使用lsof -p
,但我正在寻找不需要fork/exec的东西。
例如,在Linux上,可以简单地遍历/proc/{pid}/fd
。
我看到的所有资料都建议使用lsof -p
,但我正在寻找不需要fork/exec的东西。
例如,在Linux上,可以简单地遍历/proc/{pid}/fd
。
PROC_PIDLISTFDS
选项和proc_pidinfo
来枚举给定进程使用的文件。然后,您可以依次对每个文件使用PROC_PIDFDVNODEPATHINFO
选项和proc_pidfdinfo
来获取其路径。sys/proc_info.h
在解释系统调用提供的信息方面似乎相对自我解释,如果您想更深入地了解其工作原理,可以在内核开源中找到系统调用的实现。 - bdash