gpt4 book ai didi

linux - 内核作为客户端,用户应用程序作为服务器使用 netlink

转载 作者:太空宇宙 更新时间:2023-11-04 11:17:06 25 4
gpt4 key购买 nike

我想以内核作为客户端在内核模块和用户应用程序之间建立连接。换句话说,内核会向用户应用程序发送消息,等待回复,收到回复,然后继续执行。

例如,在内核中我会发送消息然后等待回复。

// inside kernel
nlmsg_unicast();

wait_until_user_reply();

/* process reply */
/* continue execution.. */

在用户内部,

while (1) {
// inside user
recvmsg();

/* assembly reply.. */

sendmsg();
}

然而,netlink 协议(protocol)所做的是在用户每次发送消息时调用一个回调函数。我想要的是让内核等待用户的回复,然后继续执行。在回调函数内部更新的全局变量上忙循环等待是否可行?我试过了,但我认为这不是一个很好的解决方案。

我可以做一些类似“ sleep 直到回复到来”的事情吗?我可以让内核休眠吗?

最佳答案

我已经使用 wait_for_completion 解决了这个问题。事实证明,这并没有那么难。

关于linux - 内核作为客户端,用户应用程序作为服务器使用 netlink,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20346015/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com