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

use*_*770 2 c linux

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

nin*_*alj 5

您可以通过 netlink 获取链接开启/关闭事件。您将创建一个PF_NETLINK套接字,绑定到该RTMGRP_LINK组,然后等待RTM_NEWLINK/RTM_DELLINK消息。链接事件在IFF_RUNNING和 中IFF_LOWER_UP设置ifinfomsg.flags,而链接断开事件的两个标志都被清除(有趣的是,我收到RTM_NEWLINK了两种类型事件的消息)。