0

我在这里阅读了一些问题,但无法真正找到我在这里面临的具体问题......

我需要在一个特定项目中实现一个“DeviceCache”,它缓存在 /proc/net/dev 中找到的所有设备名称。语言是 C/++

所以我想到了一个单独的线程,每隔 X 秒在上面提到的目录中查找,但被鼓励找到更直接的方法。如何将我的进程的方法注册到 linux 的设备管理器?有没有类似事件/信号的方式?

我查看了其他站点,但找不到任何有用的代码...我对 Linux 编程相对较新,但愿意学习新事物 :)

4

1 回答 1

1

根据您的评论,您真正想要的是在任何给定时间跟踪哪些网络接口在运行。

确定网络接口是否启动的唯一真正方法是对其进行测试——毕竟,另一端的路由器可能已关闭。例如,您可以定期发送 ping。

但是,如果您只想知道媒体是否出现故障(即,网线已拔下),请查看以下 SO 问题:

如果你只是想被通知接口的实际硬件级注册(例如,当插入 USB NIC 时),如果你的平台有 udev,你可以使用 udev 事件;否则,我相信还有另一个用于硬件添加/删除事件的网络链接类别。

于 2011-09-23T20:22:06.657 回答