在linux上获取NIC /以太网卡链接状态的事件

时间:2012-04-26 19:33:46

标签: c linux

Linux上是否有任何API(或特殊文件)提供有关以太网卡链接状态更改的事件而不进行轮询?即当你插上/拔出电缆时?

2 个答案:

答案 0 :(得分:4)

如果此文件/sys/class/net/eth0/carrier的内容为1,则界面eth0具有附件。

答案 1 :(得分:4)

您可以通过netlink获取链接上/下事件。您将创建一个PF_NETLINK套接字,绑定到RTMGRP_LINK组,并等待RTM_NEWLINK / RTM_DELLINK条消息。链接事件在IFF_RUNNING中设置了IFF_LOWER_UPifinfomsg.flags,而链接关闭事件清除了两个标记(有趣的是,我收到两种类型事件的RTM_NEWLINK条消息)。