Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/59.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 注册到Linux的DeviceManager_C++_C_Linux_Device Manager - Fatal编程技术网

C++ 注册到Linux的DeviceManager

C++ 注册到Linux的DeviceManager,c++,c,linux,device-manager,C++,C,Linux,Device Manager,我在这里读了一些问题,但没有真正找到我在这里面临的具体问题 我需要在一个特定的项目中实现一个“DeviceCache”,它缓存在/proc/net/dev中找到的所有设备名。 语言是C/++ 因此,我考虑在上面提到的目录中每隔X秒寻找一个单独的线程,但我被鼓励寻找一种更直接的方法。 如何将进程的方法注册到linux的设备管理器? 有类似事件/信号的方式吗 我查看了其他网站,但找不到任何有用的代码。。。我对Linux编程比较陌生,但愿意学习新东西:)根据您的评论,您真正想要的是跟踪在任何给定时间哪

我在这里读了一些问题,但没有真正找到我在这里面临的具体问题

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

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


我查看了其他网站,但找不到任何有用的代码。。。我对Linux编程比较陌生,但愿意学习新东西:)

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

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

但是,如果您只想知道媒体是否停机(即,网络电缆已拔出),请查看以下问题:


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

为什么要缓存这样的东西?读取文件的速度可能非常快。您真正想要实现什么?DeviceCache将由套接字框架使用,以便使用“fastet”设备进行通信。因此,如果拔掉其中一个设备的插头,系统应将该设备更换为第二个快速设备
/proc/net/dev
不提供媒体连接信息您选择的发行版上是否有NetworkManager?但它列出了所有插入/安装的设备,如eth、wlan和ppp,我使用它们连接到另一个插座。还是我误解了那个文件?PS:由于此代码应该在嵌入式系统上运行,我无法在linux中安装任何其他标准库,因此我假设NetworkManager没有安装。谢谢回答,我只是使用了错误的术语来搜索我的问题,非常感谢:>