如何以编程方式获取OS X上给定PID的打开文件描述符列表?
问题描述:
我见过的所有东西都说使用lsof -p
,但我正在寻找一些不需要fork/exec的东西。如何以编程方式获取OS X上给定PID的打开文件描述符列表?
例如在Linux上,可以简单地走/proc/{pid}/fd
。
答
你可以use proc_pidinfo
与PROC_PIDLISTFDS
选项来枚举给定进程使用的文件。然后您可以在每个文件上依次使用proc_pidfdinfo
和PROC_PIDFDVNODEPATHINFO
选项来获取其路径。
你有没有签出[lsof源代码](http://people.freebsd.org/~abe/)? – Sebivor 2013-03-23 05:49:30
我挖了15分钟左右,但我对C很糟糕,无法理解它。我会一直捅它,如果我想出了一些东西,我会把它作为自己的答案:) – fmoo 2013-03-23 05:55:11