我应该使用哪个 API 来获取 linux 上的当前网络带宽使用情况。我知道它可以通过脚本简单地完成,但我可以使用 C 获得相同的效果吗?
问问题
62 次
1 回答
2
读取/proc/net/dev
两次,测量读取之间的时间,以估计带宽使用。更长的间隔产生更好的结果;我会在两次读取之间使用至少十分之一秒,也许是一整秒,以获得可靠的估计。
前两行是标题行,然后是每个设备的一行。有关详细信息,请参阅man 5 proc
(最新参考是Linux 手册页项目)。netstat
和实用程序都ifconfig
使用这个伪文件。
这是我机器上的样子:
Inter-| Receive | Transmit
face |bytes packets errs drop fifo frame compressed multicast|bytes packets errs drop fifo colls carrier compressed
eth0: 159107615 116900 0 0 0 0 0 0 7258457 88350 0 0 0 0 0 0
lo: 367802 2282 0 0 0 0 0 0 367802 2282 0 0 0 0 0 0
请注意,这是一个内核伪文件,因此从未本地化。Linux 内核开发人员对向后兼容性非常严格,因此虽然可能会在此伪文件中添加新字段,但现有字段将保持原样。
于 2013-09-09T14:04:52.760 回答