0

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

4

1 回答 1

2

为什么您认为nlh->nlmsg_len - NLMSG_HDRLEN您正在查看的消息没有返回 {message size without header}?例如,如果 nlmsg_len 包含值 16(这就是 NLMSG_HDRLEN 应该是的值),则此消息的有效负载为空。您的缓冲区中可能有更多要读取的消息。

附带说明一下,我建议您使用 libmnl 进行 Netlink 消息解析和构造。

于 2013-10-21T01:54:36.777 回答