gpt4 book ai didi

c - 如何抑制多个 netlink 事件?

转载 作者:太空狗 更新时间:2023-10-29 11:44:16 24 4
gpt4 key购买 nike

我一直在使用this code作为在 Linux 机器上接收接口(interface)启动/关闭事件的示例。我能够正确接收事件,但是当接口(interface)从先前的关闭状态恢复时,我会收到多个这样的网络链接事件:

Event received >> NETLINK::Down
Event received >> NETLINK::Down
Event received >> NETLINK::Up

编辑:我修改了这段代码中的一行:

addr.nl_groups = RTMGRP_LINK | RTMGRP_IPV4_IFADDR | RTMGRP_IPV6_IFADDR;

到:

addr.nl_groups = RTMGRP_LINK;

但我仍然收到多个事件。任何人都可以建议是否可以抑制这些事件以接收每个状态的唯一事件?如果是怎么办?

最佳答案

经过大量研究,我终于完成了这项工作。有一个名为“ifi_change”的标志,它给出了网络设备状态变化的变化。我无法想到它,因为 rtnetlink man page没有提及任何相关内容。它表示它保留供将来使用,应始终设置为 0xFFFFFFFF。但是,它的值会随着界面当前状态的变化而变化。如果状态发生变化,它会给出一个有限值,否则为零。使用此检查,我能够抑制多个网络链接消息。

关于c - 如何抑制多个 netlink 事件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27700208/

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