Найти идентификатор потока, который открывает сокет для сети - PullRequest
0 голосов
/ 16 января 2020

Я хочу с помощью c linux узнать pid (идентификатор процесса) tid (идентификатор потока) и идентификатор сокета с открытым сокетом.

Например, pid X имеет 3 потока A, B, C, но только поток B имеет сокет для Ip Z, а fd этого сокета - W,

Я хочу выяснить X, B, Z, W.

Я пытался прочитать файл /proc/net/tcp, но не могу найти идентификатор pid / tid / socket.

Какой простой способ? запустить все / pro c и искать в каждом /proc/pid/task/tid/net (в tcp / udp), который есть нет пустого файла? и как мне получить идентификатор сокета (fd сокета)?

Или, может быть, работать на всем протяжении proc/pid/task/fd и проверить, какой fd указывает на сокет? (Как я узнаю, какой IP-адрес привязан к этому сокету?)

Или, может быть, я смогу получить все, что мне нужно от /proc/net/tcp

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...