How to get filename of an open file descriptor

Yuri yuri at rawbw.com
Mon Nov 12 14:05:37 PST 2007


Robert,

Thank you for your response.

I attempted to compile procstat but procstat.h seems to be missing in tgz.

Yuri

Quoting Robert Watson <rwatson at FreeBSD.org>:

> 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