我编写了一个程序,如果网络接口发生了变化,需要得到通知,特别是新的一个出现或者已经存在.我的研究带来了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)
我的理解是这是一个初始化部分,用于启用某些信号.我想必须有一个处理事件的处理程序子程序.
我的问题是:
这是启用该事件的正确代码段吗?
如何处理事件:我需要一些处理程序吗?
包含相关信息(关于网络接口及其更改)的数据结构是什么?
谢谢你的帮助.