printk
Printk与Printf对比:
相同点:
打印信息
不同点:
Printk在内核中使用,Printf在应用程序中使用
Printk允许根据严重程度,通过附加不同的“优先级”来对消息分类。
在<linux/kernel.h>中定义了8种记录级别。按照优先级递减的顺序分别是:
KERN_EMERG “<0>”
用于紧急消息,常常是那些崩溃前的消息。
KERN_ALERT “<1>”
需要立刻行动的消息。
KERN_CRIT “<2>”
严重情况。
KERN_ERR “<3>”
错误情况。
KERN_WARNING “<4>”
有问题的警告
KERN_NOTICE “<5>”
正常情况,但是仍然值得注意
KERN_INFO “<6>”
信息型消息
KERN_DEBUG “<7>”
用作调试消息
没有指定优先级的printk默认使用
DEFAULT_MESSAGE_LOGLEVEL优先级,
它是一个在kernel/printk.c中定义的整数。
在2.6.29内核中
#define DEFAULT_MESSAGE_LOGLEVEL 4
/* KERN_WARNING */
在图形化界面中prink权限要求KERN_EMERG,而初始化函数中prink语句权限为KERN_ERR;
所有打印输出信息都会保存在文件/var/log/message中,可以通过该文件来查看输出信息。