说明

定义了几个标准宏来访问或创建网络链接数据报。它们在本质上类似于cmsg(3)中为辅助数据定义的宏。只能使用这些宏访问往返于netlink套接字的缓冲区。

NLMSG_ALIGN()
四舍五入netlink消息的长度以使其正确对齐。
NLMSG_LENGTH()
给定有效载荷长度len,此宏将返回对齐的长度以存储在nlmsghdr的nlmsg_len字段中。
NLMSG_SPACE()
返回有效载荷为len的网络链接消息将占用的字节数。
NLMSG_DATA()
返回指向与传递的nlmsghdr关联的有效负载的指针。
NLMSG_NEXT()获取多部分消息中的下一个nlmsghdr。调用者必须检查当前的nlmsghdr是否未设置NLMSG_DONE ---该函数最终不会返回NULL。 len参数是一个左值,其中包含消息缓冲区的剩余长度。此宏将其减少消息头的长度。
NLMSG_OK()
如果netlink消息未被截断并且采用适合于解析的形式,则返回true。
NLMSG_PAYLOAD()
返回与nlmsghdr关联的有效负载的长度。

另外参见

libnetlink(3),netlink(7)

名称

netlink-Netlink宏

备注

通过libnetlink使用netlink通常比通过低级内核接口使用netlink更好。

遵循规范

这些宏是非标准的Linux扩展。

语法

#include <asm/types.h>
#include <linux/netlink.h>

int NLMSG_ALIGN(size_t len);
int NLMSG_LENGTH(size_t len);
int NLMSG_SPACE(size_t len);
void *NLMSG_DATA(struct nlmsghdr *nlh);
struct nlmsghdr *NLMSG_NEXT(struct nlmsghdr *nlh, int len);
int NLMSG_OK(struct nlmsghdr *nlh, int len);
int NLMSG_PAYLOAD(struct nlmsghdr *nlh, int len);

出版信息

这个页面是Linux手册页项目5.08版的一部分。有关项目的说明、有关报告错误的信息以及此页面的最新版本,请访问https://www.kernel.org/doc/man-pages/

NETLINK - Linux手册页

Linux程序员手册 第3部分
更新日期: 2014-03-20

日期:2019-08-20 18:00:55 来源:oir作者:oir