我想获取套接字描述符引用计数。这个计数存储在哪里?我没有在inode结构中找到它。 我怎样才能得到这个值?
答案 0 :(得分:0)
每个协议都可以在/proc/net/*
个文件中使用。
例如,the official /proc/net/tcp documentation表示在socket reference count
值之后有一个inode
列。见https://askubuntu.com/a/243441
$ cat /proc/net/tcp
sl local_address rem_address st tx_queue rx_queue tr tm->when retrnsmt uid timeout inode
0: 0100007F:0CEA 00000000:0000 0A 00000000:00000000 00:00000000 00000000 115 0 14759 1 0000000000000000 100 0 0 10 -1
这里的inode是14759,套接字引用计数是1.
UDP有一个类似的ref
列 - 请参阅https://stackoverflow.com/a/18322579/458259
$ cat /proc/net/udp
sl local_address rem_address st tx_queue rx_queue tr tm->when retrnsmt uid timeout inode ref pointer drops
40: 00000000:0202 00000000:0000 07 00000000:00000000 00:00000000 00000000 0 0 3466 2 ffff88013abc8340 0
这里的inode是3466,套接字引用计数是2.
请注意,只有较新的内核才具有此套接字引用计数列信息。