How to get filename of an open file descriptor
Robert Watson
rwatson at FreeBSD.org
Mon Nov 12 14:07:49 PST 2007
On Mon, 12 Nov 2007, Yuri wrote:
> I am looking for functionality similar to Linux's /proc/<PID>/fd/<FD>. I
> need to know what is the file name of an open file descriptor.
>
> /proc/<PID>/fd is missing on FreeBSD.
>
> There's something called 'fdescfs'. In /dev/fd/ it shows the list of file
> descriptors. But they don't seem to be symbolic links to open files. And
> also it only shows FDs of the current process.
>
> So why there's no /proc/<PID>/fd in FreeBSD? And how do I work around this?
> Or should I just invest time and write a kernel patch implementing
> /proc/<PID>/fd/?
You can give these patches a try:
http://www.watson.org/~robert/freebsd/20071112-procstat.tgz
They reflect a work-in-progress procstat(1) tool, which inspects process state
in various ways. They are developed against 8-CURRENT, but likely still apply
fairly easily to 7-STABLE. They suffer various deficiencies, such as relying
on the name cache in-kernel to generate file paths for mapped files and open
file descriptors, so don't currently work with devfs nodes (for example).
However, they may do what you need. Any feedback would be most welcome.
Robert N M Watson
Computer Laboratory
University of Cambridge
More information about the freebsd-hackers
mailing list