我目前正在编写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
...
}
...
}
所以我需要一个类似printk()
的函数来支持varargs。与vprintf()
到printf()
一样。
我为vprintk
谷歌了,但没有找到它的运气。
答案 0 :(得分:6)
您始终可以使用vsnprintf()将va_list
格式化为缓冲区,并将该缓冲区传递给printk()
。
答案 1 :(得分:5)
是的,可以使用 vprintk (格式字符串,va_list); 你不必考虑缓冲区大小。只需在printk中使用它即可。