2003-09-03 17:19:28

by Chris Friesen

[permalink] [raw]
Subject: given a struct sock, how to find pid of process that owns it?


I'm working on a small app similar to netstat that only cares about unix
sockets.

I can easily walk /proc/net/unix, but to find the owner of the socket I
need to scan /proc, which gets expensive.

Accordingly, I'd like to extend /proc/net/unix to also dump out the pid
of the process that owns the socket. The only thing is, I can't seem to
figure out how to find the pid of the socket owner given a pointer to
the socket struct.

Any tips? Is it even there?

Thanks,

Chris


--
Chris Friesen | MailStop: 043/33/F10
Nortel Networks | work: (613) 765-0557
3500 Carling Avenue | fax: (613) 765-2986
Nepean, ON K2H 8E9 Canada | email: [email protected]


2003-09-03 19:04:32

by Stephen Hemminger

[permalink] [raw]
Subject: Re: given a struct sock, how to find pid of process that owns it?

On Wed, 03 Sep 2003 13:17:25 -0400
Chris Friesen <[email protected]> wrote:

>
> I'm working on a small app similar to netstat that only cares about unix
> sockets.
>
> I can easily walk /proc/net/unix, but to find the owner of the socket I
> need to scan /proc, which gets expensive.
>
> Accordingly, I'd like to extend /proc/net/unix to also dump out the pid
> of the process that owns the socket. The only thing is, I can't seem to
> figure out how to find the pid of the socket owner given a pointer to
> the socket struct.
>

There is a N to 1 relationship, you will end up needing the scan.