【问题标题】:If there is a convenience method to get absolute path by (port, inode number, relative name)?如果有一种方便的方法可以通过(端口、inode 编号、相对名称)获取绝对路径?
【发布时间】:2017-11-09 07:22:59
【问题描述】:

我想要 Linux C 程序的答案,而不是 shell (find / -inum xxx)。

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

  1. 现在我想找到绝对路径名。
    • 按端口:我使用getservbyport 来获取相对路径,但它不是绝对路径!
    • 按inode编号:我找不到C/C++中的inum有什么用
    • 通过 pid:/proc/pid/exe,但我怎样才能获得 pid?

我见过其他一些获取 abs_path 的方法:遍历 /porc/pid/fd 以匹配端口,并获取 struct inode,然后递归到根目录。 但是太麻烦了,浪费性能。

所以,我的问题: 如果有一种方便的方法可以通过(端口、inode 编号、相对名称)获取绝对路径? 或者 如果有方便的方法通过(端口、inode 号、相对名称)获取 pid?

谢谢!

【问题讨论】:

    标签: netstat


    【解决方案1】:

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

    【讨论】:

      猜你喜欢
      • 2011-01-21
      • 2011-04-10
      • 2021-11-08
      • 2015-05-12
      • 1970-01-01
      • 1970-01-01
      • 2013-01-02
      • 1970-01-01
      相关资源
      最近更新 更多