У меня есть код ядра, который использует generi c netlink для отправки сообщений в пространство пользователя и в основном выполняет следующие функции (я помещаю его в псевдокод, чтобы сосредоточиться на важной части):
send_message_to_user_space(msg1);
send_message_to_user_space(msg2);
send_message_to_user_space(msg3);
На стороне пользователя я использую libnl для получения своих сообщений, в частности, для этого я использую функцию nl_recvmsgs_default
. И документация этой функции:
Получение набора сообщений из сокета netlink с использованием обработчиков в nl_sock
Хотя, если я использую nl_recvmsgs_default
только один раз, Я получаю только свое первое сообщение, чтобы получить три сообщения, я позвонил ему трижды. Почему я не получаю «набор» сообщений, как написано в документации по функциям? Правильный способ получить эти три сообщения - это использовать nl_recvmsgs_default
три раза?