小编Rus*_*mov的帖子

如何通过Netlist和RTMGRP_LINK信号获得有关网络接口更改的通知?

我编写了一个程序,如果网络接口发生了变化,需要得到通知,特别是新的一个出现或者已经存在.我的研究带来了netlink及其RTMGRP_LINK信号.这个手册给出了一个我尚不清楚的例子.

它有这个代码:

memset(&sa, 0, sizeof(sa));
snl.nl_family = AF_NETLINK;
snl.nl_groups = RTMGRP_LINK | RTMGRP_IPV4_IFADDR;

fd = socket(AF_NETLINK, SOCK_RAW, NETLINK_ROUTE);
bind(fd, (struct sockaddr*)&sa, sizeof(sa));
Run Code Online (Sandbox Code Playgroud)

我的理解是这是一个初始化部分,用于启用某些信号.我想必须有一个处理事件的处理程序子程序.

我的问题是:

  • 这是启用该事件的正确代码段吗?

  • 如何处理事件:我需要一些处理程序吗?

  • 包含相关信息(关于网络接口及其更改)的数据结构是什么?

谢谢你的帮助.

c linux notifications netlink network-interface

7
推荐指数
1
解决办法
7417
查看次数

标签 统计

c ×1

linux ×1

netlink ×1

network-interface ×1

notifications ×1