C printk使用简单错误

C printk使用简单错误,c,linux-kernel,C,Linux Kernel,尝试在dmesg中打印消息时在小片段中接收错误 #include<linux/kernel.h> printk(KERN_INFO "\n hello there I am in dmesg \n"); #包括 printk(KERN_INFO“\n您好,我在dmesg中\n”); **错误:avotstbr99:root:/tmp#gcc dmessage.c dmessage.c:4:error:expected')在字符串常量**之前,实际上应该是这样的: #inclu

尝试在dmesg中打印消息时在小片段中接收错误

#include<linux/kernel.h>


printk(KERN_INFO "\n hello there I am in dmesg \n");
#包括
printk(KERN_INFO“\n您好,我在dmesg中\n”);
**错误:avotstbr99:root:/tmp#gcc dmessage.c


dmessage.c:4:error:expected')在字符串常量**

之前,实际上应该是这样的:

#include <linux/module.h>   
#include <linux/kernel.h>   
#include <linux/init.h>     

static int __init YourDemsgCode_init(void)
{
printk(KERN_INFO "\n hello there I am in dmesg \n");
return 0;
}

static void __exit YourDemsgCode_exit(void)
{
printk(KERN_INFO "Goodbye dmesg\n");
}

module_init(YourDemsgCode_init);
module_exit(YourDemsgCode_exit);

实际上应该是这样的:

#include <linux/module.h>   
#include <linux/kernel.h>   
#include <linux/init.h>     

static int __init YourDemsgCode_init(void)
{
printk(KERN_INFO "\n hello there I am in dmesg \n");
return 0;
}

static void __exit YourDemsgCode_exit(void)
{
printk(KERN_INFO "Goodbye dmesg\n");
}

module_init(YourDemsgCode_init);
module_exit(YourDemsgCode_exit);

这是你代码的总和吗?你有main吗?这就是所有的代码吗?是的,我想printk会显示内核缓冲区消息,而且它不会简单地被编译好吗?这是你代码的总和吗?你有一个main吗?这就是所有的代码吗?是的,就这些,我以为printk会显示内核缓冲区消息,而且它不会被简单地编译好吗?谢谢Hemant,所以我们不能用printk打印内核缓冲区消息,这是一个需要加载模块的东西?@theartist33对,但学习它的工作很好,继续。谢谢Hemant,所以我们不能只用printk打印内核缓冲区消息,这是一个需要与模块一起加载的东西?@theartist33是的,但是学习它的工作很棒,请继续。