在Ubuntu8.04上网线被拔出的系统回调

来源:百度知道 编辑:UC知道 时间:2024/06/30 17:14:31
最近在Linux上做开发,OS是Ubuntu8.04。现在我需要实时的知道机器的有线网线被拔出的事件,也就是说我可以注册一个事件,然后在网线被拔出的时候系统可以给我一个回调进入我的一个函数让我做一些事情,在Windows上有类似的回调可以使用在Ubuntu上我的开发经验很少实在是很困难,请知道的高手给出代码实现,给出网址之类的帮助不大,因为我在baidu & google上已搜索多日了。

用C或者C++实现都可以。

PS:不是用ioctl之类查看网卡标志位的方法,因为这种pull的方式需要用timer循环,会严重影响性能,我需要一种push的方式,让系统告诉我这个事情发生了。
感谢一楼的回答。

我看过一些源码,ethtool的源码也是通过ioctl做到的,所以还是需要用timer来循环,因为做到尽可能像是实时的,所以这个timer时间会比较短,例如2s。而这么做在用网卡拷贝东西的时候速度会受到明显的影响,我们的客户对这样的性能很不满意。

建议:1.refer to:http://noliper.spaces.live.com/blog/cns!920E150C4B69A294!605.entry
2.另外可以参考mii-tool 和 ethtool 的源代码,它们都有类似检测的功能
3。你是不是应该到更加专业的论坛上面去问呢 比如csdn chinaunix ,关于你说的timer方式,周期性检测,为什么不可以呢?很影响性能吗
个人意见,希望对你有帮助

继续努力~