c - 我怎样才能将每个/proc/net/tcp 条目匹配到每个打开的套接字?

标签 c linux networking procfs

我正在尝试从 /proc/net/tcp 解析套接字信息,虽然我可以识别一些字段,例如内存地址或发送队列使用,但我无法找到每个条目如何绑定(bind)到它的套接字描述符。例如,使用此数据:

1: 5922140A:E459 D5C43B45:0050 01 00000000:00000000 00:00000000 00000000  1000        0 507218 1 f6ab1300 57 3 12 4 -1  

我想知道哪个是相应的套接字描述符。

最佳答案

获取 inode 编号(在本例中为 507218)。该套接字的每个打开文件描述符(同一个套接字可能有多个文件描述符)将显示为以下形式的链接:

/proc/<PID>/fd/<N> -> socket[507218]

(其中 <PID> 是进程 ID,<N> 是文件描述符)。

关于c - 我怎样才能将每个/proc/net/tcp 条目匹配到每个打开的套接字?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5901583/

相关文章:

c - 测量从用户空间到内核空间的延迟的最佳方法是什么?

C编程: A pyramid with asterisks

linux - 有没有一种方法可以不使用重命名系统调用来更改文件名?

c - 二进制数转 MLT-3

c++ - 为什么在 C# 中将 ushort 端口号从 htons 转换为 ntohs 会产生不同的结果?

sockets - gforth 是否包含网络套接字功能?

c - 结构中 restrict 关键字的行为

c - 循环遍历所有可能的长度为 n 的字符串

linux - 将 'here document' 文本 block 编入新文件

python - 在 conda 中通过 pip 安装模块 jpy 时出现 FileNotFoundError