Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
我正在尝试获取通过 NetLink(Linux 内核)发送的数据块的大小。我试过了size = nlh->nlmsg_len - NLMSG_HDRLEN,但没有返回正确的大小。获取消息数据大小的正确方法是什么?
size = nlh->nlmsg_len - NLMSG_HDRLEN
为什么您认为nlh->nlmsg_len - NLMSG_HDRLEN您正在查看的消息没有返回 {message size without header}?例如,如果 nlmsg_len 包含值 16(这就是 NLMSG_HDRLEN 应该是的值),则此消息的有效负载为空。您的缓冲区中可能有更多要读取的消息。
nlh->nlmsg_len - NLMSG_HDRLEN
附带说明一下,我建议您使用 libmnl 进行 Netlink 消息解析和构造。