【发布时间】:2014-07-14 09:01:47
【问题描述】:
我编写了一个内核模块,我想在其中向用户空间程序发送接口启动/关闭通知。我已将消息组分配为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.)
有人能说明原因吗?
【问题讨论】:
-
RTMGRP_LINK 宏被定义为仅供用户模式程序使用。我可以看到它是在“#ifndef __KERNEL__”宏下定义的
-
@Icarus3 正确。再次浏览内核头文件后,我观察到 RTMGRP_LINK 仅限于用户空间程序,如您所说。对于内核模块,将使用 RTNLGRP_LINK。
标签: linux kernel-module netlink