gpt4 book ai didi

linux - 在 Qt 包装器类中使用 libudev 监控 eth0

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:32:07 25 4
gpt4 key购买 nike

我需要在 GUI 上显示以太网连接 (eth0) 的状态,即链接是否打开。我有一个 Davicom DM9000 PHY。

我知道有多种方法可以给这只猫换皮,比如解析 ifconfig、轮询/sys/class/net/eth0/operstate 等。

但是,由于我还需要监控其他设备,例如 USB,因此我想为此使用 libudev 作为更通用的实现。此外,我想使用监视器机制(使用 select() ),这样做可以避免轮询。我已将 libudev 功能包装在 Qt 类中,并打算使用信号/槽机制向我的程序指示事件。

问题是,无论如何我似乎都无法从 eth0 生成 UDEV 事件。我也尝试过使用

udevadm monitor

但拔掉我的以太网电缆时也没有任何事件。

我不认为我的代码离得太远,因为我能够通过拔下键盘等方式为 USB (hidraw) 设备生成事件。此外,我能够使用 libudev 枚举机制查看 eth0 的属性(但这是一个轮询过程)

我的问题 - 这是否可能,即使用 libudev 的 udev_monitor 函数来捕获 eth0 上的事件?

抱歉发了这么长的帖子。

最佳答案

已经看过D-bus ?通过 D-Bus 和底层服务,您可以获得所需的所有信息。看这个有点过时article理解这个概念。参见 Qt/D-Bus documentation .

关于linux - 在 Qt 包装器类中使用 libudev 监控 eth0,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25384379/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com