我编写了一个内核模块,我想将接口上/下通知发送到用户空间程序。我已将消息组指定为RTMGRP_LINK
,并且还包含linux/rtnetlink.h
头文件。但是当我编译模块时,我收到以下错误:
abc.c: In function âevent_handlerâ:
abc.c:63: error: âRTMGRP_LINKâ undeclared (first use in this function)
abc.c:63: error: (Each undeclared identifier is reported only once
abc.c:63: error: for each function it appears in.)
有人能说明为什么吗?
答案 0 :(得分:1)
浏览linux/rtnetlink.h
标题后。我观察到RTMGRP_LINK
是在#ifndef __KERNEL__
下定义的,这意味着它只能由用户空间程序使用。对于内核模块RTNLGRP_LINK
应该用于使用NETLINK_ROUTE
系列的Netlink套接字进行通信。