功能描述
路由设备网口有网线接入或者拔掉的时候通知应用层,然后在应用层做响应的处理
应用层修改
应用层去捕获KOBJ_ADD和KOBJ_REMOVE事件即可,实例代码如下
参考链接:
Netlink实现热拔插监控_不积跬步,无以至千里-CSDN博客
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <errno.h>
#include <sys/types.h>
#include <asm/types.h>
//该头文件需要放在netlink.h前面防止编译出现__kernel_sa_family未定义
#include <sys/socket.h>
#include <linux/netlink.h>
#include <linux/rtnetlink.h>
void MonitorNetlinkUevent()
{
int sockfd;
struct sockaddr_nl sa;
int len;
int rc = 0;
char buf[4096];
struct iovec iov;
struct msghdr msg;
int i;
memset(&sa,0,sizeof(sa));
sa.nl_family=AF_NETLINK;
sa.nl_groups=NETLINK_KOBJECT_UEVENT;
sa.nl_pid = 0;//getpid(); both is ok
memset(&msg,0,sizeof(msg));
i