从 C/C++ 读取每个线程的网络统计信息

从 C/C++ 读取每个线程的网络统计信息

我有一个 Linux 进程,假设有 10 个线程。其中一些产生网络流量。从另一个线程,或者甚至可以在另一个进程中,我需要找出哪些线程具有网络活动。因此我需要一种方法来读取,无论是通过系统调用还是文件系统,即 /proc 这个信息。我对任何类型的网络流量感兴趣,它们可以告诉我该进程中的特定线程是否具有任何类型的网络活动。

所以我尝试解析 /proc/pid/task/net/* 文件,但是,无论我查询哪个线程,我似乎总是得到相同的信息。我不明白为什么...?我对文件 IO 做了同样的事情,但这要容易得多,因为 /proc/pid/task/io 提供了很好的总结。对我来说重要的是找到每个线程而不是每个进程的网络活动。 (套接字信息、tcp、udp、icmp 等)。

谢谢。

相关内容