我正在尝试编写 C 代码来完成与以下相同的工作:
netstat -vatp
列出所有远程/本地地址和使用它们的进程。但我不知道我应该阅读哪些文件?
我尝试调查/proc/net/tcp
and /proc/net/udp
,但它们没有进程名称或进程标识符,例如netstat
显示它!
Thanks.
你可以检查一下源代码http://freecode.com/projects/net-tools http://freecode.com/projects/net-tools。只需下载并解压 bz2 文件,您就会找到 netstat.c 源代码
快速分析:
例如 /proc/net/tcp 有一个 inode 选项卡,在 /proc 中每个 inode 都有一个子文件夹,其中包含您需要的信息。
更多分析:
我认为情况更糟。 netstat 只是循环遍历 /proc 目录并检查数字子目录的内容以查找与 inode 匹配的实际进程。不确定,因为我只是在分析
http://linux.die.net/man/5/proc http://linux.die.net/man/5/proc非常好读:)
对于您的答案,请参阅我如何将每个 /proc/net/tcp 条目与每个打开的套接字匹配? https://stackoverflow.com/questions/3319521/how-can-i-match-each-proc-net-tcp-entry-to-each-opened-socket/3328068#3328068
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)