C/C++에서 스레드별 네트워크 통계 읽기

C/C++에서 스레드별 네트워크 통계 읽기

10개의 스레드가 있는 Linux 프로세스가 있습니다. 그 중 일부는 네트워크 트래픽을 생성합니다. 다른 스레드에서 또는 다른 프로세스에서도 어떤 스레드에 네트워크 활동이 있는지 알아내야 합니다. 따라서 시스템 호출이나 파일 시스템을 통해 /proc 이 정보를 읽을 수 있는 방법이 필요합니다. 나는 프로세스의 특정 스레드에 어떤 종류의 네트워크 활동이 있는지 알려줄 수 있는 모든 종류의 네트워크 트래픽에 관심이 있습니다.

그래서 /proc/pid/task/net/* 파일을 구문 분석해 보았지만 어떤 스레드를 쿼리하든 항상 동일한 정보를 얻는 것 같습니다. 왜인지 이해가 안 돼요...? 파일 IO에서도 동일한 작업을 수행했지만 /proc/pid/task/io가 좋은 요약을 제공하므로 훨씬 쉬웠습니다. 나에게 중요한 것은 프로세스별이 아닌 스레드별 네트워크 활동을 찾는 것입니다. (소켓 정보, tcp, udp, icmp 등).

감사해요.

관련 정보