如何使用通用netlink和libnl从内核获取多重消息?

时间:2020-08-01 02:07:49

标签: c linux-kernel netlink

我有一个内核代码,该代码使用通用的netlink将消息发送到用户空间,并且基本上执行以下操作(我将其放入伪代码中以专注于重要部分):

send_message_to_user_space(msg1);
send_message_to_user_space(msg2);
send_message_to_user_space(msg3);

在用户空间方面,我正在使用libnl接收消息,特别是,我正在使用函数nl_recvmsgs_default来执行此操作。该函数的文档是:

使用nl_sock中的处理程序从netlink套接字接收一组消息

尽管,如果我只使用一次nl_recvmsgs_default,我只会收到我的第一条消息,要接收这三条消息,我必须三遍。为什么我没有收到功能文档中所说的“一组”消息?接收这三则消息的正确方法是使用nl_recvmsgs_default三次?

0 个答案:

没有答案