如果有一个方便的方法来获取绝对路径(端口,索引节点号,相对名称)?

时间:2017-11-09 07:23:00

标签: netstat

我想在Linux C程序中找到答案,而不是shell(找到/ -inum xxx)。

以下是详细信息: 1.我有一个名为'my_netstat_plus'的程序,它喜欢'netstat'来读取/proc/net/tcp(6).udp(6)并加载一些信息(addr,port,inode ...)

  1. 现在我想找到绝对的路径名。
    • by port:我使用getservbyport获取相对路径,但它不是abs路径!
    • by inode number:我无法在C / C ++中找到inum的用法
    • 通过pid:/ proc / pid / exe,但我怎样才能获得pid?
  2. 我已经看到了其他方法来获取abs_path:遍历/ porc / pid / fd以匹配端口,并获取struct inode,然后递归到root目录。 但它太麻烦和浪费性能。

    所以,我的问题: 如果有一个方便的方法来获取绝对路径(端口,inode号,相对名称)? 要么 如果有方便的方法来获取pid(端口,inode号,相对名称)?

    谢谢!

1 个答案:

答案 0 :(得分:0)

首先:检索/ proc中的所有进程// 其次:读取每个进程fd链接,如/ proc // fd / 1链接到socket:[12345],这个12345等于ino有问题