printk用法简单错误

时间:2016-01-28 18:08:34

标签: c linux-kernel

尝试在dmesg中打印邮件时收到小片段中的错误

#include<linux/kernel.h>


printk(KERN_INFO "\n hello there I am in dmesg \n");

**错误:avotstbr99:root:/ tmp #gcc dmessage.c

dmessage.c:4:错误:预期')'字符串常量**

1 个答案:

答案 0 :(得分:2)

实际上它应该是这样的:

#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);

然后你需要使用Makefile编译它,一个正常的gcc不会工作。

obj-m += YourDemsgCode.o


all:
make -C /lib/modules/$(shell uname -r)/build M=$(PWD) modules

clean:
make -C /lib/modules/$(shell uname -r)/build M=$(PWD) clean