C++ 注册到Linux的DeviceManager
我在这里读了一些问题,但没有真正找到我在这里面临的具体问题 我需要在一个特定的项目中实现一个“DeviceCache”,它缓存在/proc/net/dev中找到的所有设备名。 语言是C/++ 因此,我考虑在上面提到的目录中每隔X秒寻找一个单独的线程,但我被鼓励寻找一种更直接的方法。 如何将进程的方法注册到linux的设备管理器? 有类似事件/信号的方式吗C++ 注册到Linux的DeviceManager,c++,c,linux,device-manager,C++,C,Linux,Device Manager,我在这里读了一些问题,但没有真正找到我在这里面临的具体问题 我需要在一个特定的项目中实现一个“DeviceCache”,它缓存在/proc/net/dev中找到的所有设备名。 语言是C/++ 因此,我考虑在上面提到的目录中每隔X秒寻找一个单独的线程,但我被鼓励寻找一种更直接的方法。 如何将进程的方法注册到linux的设备管理器? 有类似事件/信号的方式吗 我查看了其他网站,但找不到任何有用的代码。。。我对Linux编程比较陌生,但愿意学习新东西:)根据您的评论,您真正想要的是跟踪在任何给定时间哪
我查看了其他网站,但找不到任何有用的代码。。。我对Linux编程比较陌生,但愿意学习新东西:)根据您的评论,您真正想要的是跟踪在任何给定时间哪些网络接口是可操作的 确定网络接口是否正常的唯一正确方法是测试它——毕竟,另一端的路由器可能已关闭。例如,您可以定期发送ping 但是,如果您只想知道媒体是否停机(即,网络电缆已拔出),请查看以下问题:
如果您只想得到接口实际硬件级注册的通知(例如,当USB NIC插入时),如果您的平台具有udev,则可以使用udev事件;否则,我相信对于硬件添加/删除事件还有另一个netlink类别。为什么要缓存这样的东西?读取文件的速度可能非常快。您真正想要实现什么?DeviceCache将由套接字框架使用,以便使用“fastet”设备进行通信。因此,如果拔掉其中一个设备的插头,系统应将该设备更换为第二个快速设备
/proc/net/dev
不提供媒体连接信息您选择的发行版上是否有NetworkManager?但它列出了所有插入/安装的设备,如eth、wlan和ppp,我使用它们连接到另一个插座。还是我误解了那个文件?PS:由于此代码应该在嵌入式系统上运行,我无法在linux中安装任何其他标准库,因此我假设NetworkManager没有安装。谢谢回答,我只是使用了错误的术语来搜索我的问题,非常感谢:>