我目前正在编写一个 Linux 内核模块,并且在实现它与用户空间程序的通信时遇到了问题。
该内核模块需要接收用户空间程序下发的任务,完成后将结果发送回用户空间程序。当内核模块执行其工作时,应该阻止用户空间程序。
我认为内核用户空间 IPC 或 Unix 套接字会很不错,但我没有运气找到谷歌的例子。
目前我丑陋的解决方案是导出一个chardev并让用户空间程序将请求写入设备文件,并从中读取结果。但是每次open()调用我只能发出一个请求,这会导致新的问题。我真的需要一个 IPC 或类似套接字的东西。谢谢!
我正在编写一个Linux内核模块,我需要处理va_list我的一个函数,它看起来像:
void blah(int flag, va_list va) {
...
if (flag & BLAH_1) {
...
printk(... va here ...); // where I need the printk() with va_list support
...
}
...
}
Run Code Online (Sandbox Code Playgroud)
所以我需要一个printk()支持varargs的类似函数.喜欢vprintf()到printf().
我谷歌了vprintk,但没有找到它的运气.