是否有一种方便的方法可以通过(端口、inode 编号、相对名称)获取绝对路径?

If there is a convenience method to get absolute path by (port, inode number, relative name)?

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

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

  1. 现在我想找到绝对路径名。
    • by port: 我用getservbyport 获取相对路径,但不是绝对路径!
    • 通过 inode 编号:我无法在 C/C++
    • 中找到 inum 的用途
    • by pid:/proc/pid/exe,但是我怎样才能得到 pid?

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

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

谢谢!

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