问题
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
.
回答1:
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.
来源:https://stackoverflow.com/questions/15583563/how-can-i-programmatically-get-the-list-of-open-file-descriptors-for-a-given-pid