gpt4 book ai didi

c - 如何在printk中使用变量作为格式字符串?

转载 作者:行者123 更新时间:2023-12-04 10:42:13 24 4
gpt4 key购买 nike

我尝试使用命令printk。

我在互联网上可以找到的所有示例都是直接在 printk 中放置一个字符串,如下所示:

printk(KERN_INFO "Hello %s!", "World");

但是,我试图替换“你好 %s!”使用这样的缓冲区:
char buf[] = "Hello %s!";
printk(KERN_INFO buf, "WORLD");

事实证明我得到了错误
error: expected ')' before 'buf'

我们应该如何在printk中使用变量并使用日志级别KERN_INFO?

最佳答案

KERN_INFO被定义为字符串常量“\001”“6”。写作时

printk(KERN_INFO "Hello %s!", "World");

c 编译器根据 C 标准的要求自动连接三个字符串常量:
"\001" "6" "Hello %s!"

到单个字符串常量。但是,这不适用于变量,例如 buf在这儿:
char buf[] = "Hello %s!";
printk(KERN_INFO buf, "WORLD");

什么将起作用:
char buf[] = KERN_INFO "Hello %s!";
printk(buf, "WORLD");

关于c - 如何在printk中使用变量作为格式字符串?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54430645/

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