From owner-freebsd-hackers@FreeBSD.ORG Mon Nov 12 22:07:49 2007 Return-Path: Delivered-To: freebsd-hackers@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 983AD16A473 for ; Mon, 12 Nov 2007 22:07:49 +0000 (UTC) (envelope-from rwatson@FreeBSD.org) Received: from cyrus.watson.org (cyrus.watson.org [209.31.154.42]) by mx1.freebsd.org (Postfix) with ESMTP id 620CA13C4C1 for ; Mon, 12 Nov 2007 22:07:49 +0000 (UTC) (envelope-from rwatson@FreeBSD.org) Received: from fledge.watson.org (fledge.watson.org [209.31.154.41]) by cyrus.watson.org (Postfix) with ESMTP id DC9E948849; Mon, 12 Nov 2007 16:51:43 -0500 (EST) Date: Mon, 12 Nov 2007 21:50:13 +0000 (GMT) From: Robert Watson X-X-Sender: robert@fledge.watson.org To: Yuri In-Reply-To: <1194896018.4738aa922f776@webmail.rawbw.com> Message-ID: <20071112214243.Y81124@fledge.watson.org> References: <1194896018.4738aa922f776@webmail.rawbw.com> MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII; format=flowed Cc: freebsd-hackers@freebsd.org Subject: Re: How to get filename of an open file descriptor X-BeenThere: freebsd-hackers@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Technical Discussions relating to FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 12 Nov 2007 22:07:49 -0000 On Mon, 12 Nov 2007, Yuri wrote: > I am looking for functionality similar to Linux's /proc//fd/. I > need to know what is the file name of an open file descriptor. > > /proc//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//fd in FreeBSD? And how do I work around this? > Or should I just invest time and write a kernel patch implementing > /proc//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