Я хочу с помощью 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