通过NetLink发送的数据大小

时间:2013-10-20 23:25:08

标签: c linux kernel netlink

我正在尝试通过NetLink(Linux Kernel)发送一大块数据。 我试过了size = nlh->nlmsg_len - NLMSG_HDRLEN,但是没有返回正确的大小。 获取邮件数据大小的正确方法是什么?

1 个答案:

答案 0 :(得分:2)

为什么您认为nlh->nlmsg_len - NLMSG_HDRLEN没有为您正在查看的邮件返回{邮件大小没有标题}?例如,如果nlmsg_len包含值16(这应该是NLMSG_HDRLEN),那么此消息的有效负载为空。您的缓冲区中可能包含更多想要阅读的消息。

作为旁注,我建议您使用libmnl进行Netlink消息解析和构建。