小编San*_*ang的帖子

Linux内核与用户空间程序的通信

我目前正在编写一个 Linux 内核模块,并且在实现它与用户空间程序的通信时遇到了问题。

该内核模块需要接收用户空间程序下发的任务,完成后将结果发送回用户空间程序。当内核模块执行其工作时,应该阻止用户空间程序。

我认为内核用户空间 IPC 或 Unix 套接字会很不错,但我没有运气找到谷歌的例子。

目前我丑陋的解决方案是导出一个chardev并让用户空间程序将请求写入设备文件,并从中读取结果。但是每次open()调用我只能发出一个请求,这会导致新的问题。我真的需要一个 IPC 或类似套接字的东西。谢谢!

c sockets ipc kernel-module linux-kernel

5
推荐指数
2
解决办法
8300
查看次数

是否有支持`va_list`的`printk()`函数?

我正在编写一个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,但没有找到它的运气.

c linux-kernel

5
推荐指数
2
解决办法
1933
查看次数

标签 统计

c ×2

linux-kernel ×2

ipc ×1

kernel-module ×1

sockets ×1