问题
I'm trying to parse socket info from /proc/net/tcp
and while I can identify some fields, such as memory addresses or send queue use, I can't find how each entry is bound to its socket descriptor. e.g., with this data:
1: 5922140A:E459 D5C43B45:0050 01 00000000:00000000 00:00000000 00000000 1000 0 507218 1 f6ab1300 57 3 12 4 -1
I want to know which is the correspondant socket descriptor.
回答1:
Take the inode number (in this case, 507218). Each open file descriptor to that socket (there may be multiple file descriptors for the same socket) will appear as a link of the form:
/proc/<PID>/fd/<N> -> socket[507218]
(where <PID>
is the process ID and <N>
is the file descriptor).
回答2:
Depends on the architecture as to how /proc can be formatted, but on Linux:
http://linuxdevcenter.com/pub/a/linux/2000/11/16/LinuxAdmin.html
来源:https://stackoverflow.com/questions/3319521/how-can-i-match-each-proc-net-tcp-entry-to-each-opened-socket