How can I programmatically get the list of open file descriptors for a given PID on OS X?
c, file-descriptor, macos, pid
Solution
You can use `proc_pidinfo` with the `PROC_PIDLISTFDS` option to enumerate the files used by a given process. You can then use `proc_pidfdinfo` on each file in turn with the `PROC_PIDFDVNODEPATHINFO` option to get its path.
Problem
Everything I've seen says to use `lsof -p`, but I'm looking for something that doesn't require a fork/exec. For example on Linux one can simply walk `/proc/{pid}/fd`.