如何以编程方式获取OS X上给定PID的打开文件描述符列表?

我见过的所有东西都说使用lsof -p ,但我正在寻找一些不需要fork / exec的东西。

例如在Linux上,可以简单地走/proc/{pid}/fd

您可以将proc_pidinfoPROC_PIDLISTFDS选项一起使用来枚举给定进程使用的文件。 然后,您可以使用proc_pidfdinfo选项依次在每个文件上使用proc_pidfdinfo来获取其路径。