我需要在GUI上显示以太网连接(eth0)的状态,即是否为链接。 我有一台Davicom DM9000 PHY。
我知道有很多方法可以修饰这只猫,比如解析ifconfig,polling / sys / class / net / eth0 / operstate等等。
然而,由于我还需要监视其他设备,比如USB,我想将libudev用作更通用的实现。 此外,我想使用监视器机制(使用select()),这样做可以防止必须轮询。 我已将libudev功能包装在Qt类中,并打算使用信号/插槽机制向我的程序指示事件。
问题是,无论如何,我似乎无法从eth0生成UDEV事件。 我也尝试过使用
udevadm monitor
但拔下我的以太网线时没有发生任何事件。
我认为我的代码太远了,因为我可以通过拔掉键盘来为USB(hidraw)设备生成事件。 此外,我能够使用libudev枚举机制查看eth0的属性(但这是一个轮询过程)
我的问题 - 这是可能的,即使用libudev的udev_monitor函数来捕获eth0上的事件吗?
很抱歉这篇长篇文章。
答案 0 :(得分:0)
已经看过D-bus了?通过D-Bus和底层服务,您可以获得所需的所有信息。看到这个有点过时article来理解这个概念。请参阅Qt/D-Bus documentation。