C 查找为网络打开套接字的线程id

C 查找为网络打开套接字的线程id,c,linux,sockets,C,Linux,Sockets,我想用c linux找出pid(进程id)、tid(线程id)和具有开放套接字的套接字id 例如,pid X有3个线程A、B、C,但只有线程B有Ip Z的套接字,该套接字的fd为W 我想找出X,B,Z,W 我试图读取文件/proc/net/tcp,但找不到pid/tid/socket id 简单的方法是什么?全面运行/proc并在每个/proc/pid/task/tid/net (在tcp/udp中)其中没有空文件?那么如何获取套接字id(套接字的fd) 或者运行所有的proc/pid/task

我想用c linux找出pid(进程id)、tid(线程id)和具有开放套接字的套接字id

例如,pid X有3个线程A、B、C,但只有线程B有Ip Z的套接字,该套接字的fd为W

我想找出X,B,Z,W

我试图读取文件
/proc/net/tcp
,但找不到pid/tid/socket id

简单的方法是什么?全面运行/proc并在每个
/proc/pid/task/tid/net
(在tcp/udp中)其中没有空文件?那么如何获取套接字id(套接字的fd)

或者运行所有的
proc/pid/task/fd
并检查哪个fd指向套接字?(我如何知道该套接字绑定哪个Ip?)


或者我可以从
/proc/net/tcp

中获得所需的一切,如果操作系统知道线程ID,我会感到惊讶。它当然不在乎。为什么呢?unix中的文件描述符(如套接字)是每个进程的,而不是每个线程的。好的,那么如何获取所有套接字的pid和fd呢?