我有一个内核代码,该代码使用通用的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
三次?