内核的打印函数和用户空间的打印函数是相同的,只是关键字不太一样,内核是printk,而用户空间则是printf。
在内核空间只不过有一个打印级别的设置,所谓的打印级别不过是几个宏定义
printk的打印级别一共有8个级别:数字越小说明打印级别越高
#define KERN_EMERG "<0>"
#define KERN_ALERT "<1>"
#define KERN_CRIT "<2>"
#define KERN_ERR "<3>"
#define KERN_WARNING "<4>"
#define KERN_NOTICE "<5>"
#define KERN_INFO "<6>"
#define KERN_DEBUG "<7>"
使用方法:
printk (打印机别"需要打印的信息");
我们可以设置打印级别,超过那个标准才可以打印,否在不予在显示屏上打印。
查看当前系统的打印机别:
$cat /proc/sys/kernel/printk
4 4 1 7
打印级别的设置可以通过以下几种方法:
1. echo "新的打印级别 4 1 7" > /proc/sys/kernel/printk
2. 在编译内核的时候可以通过修改
kernel hacking
CONFIG_MESSAGE_LOGLEVEL_DEFAULT=4
改变等号后边的4为自己需要的界限,如:2
3. 当然了,由于打印级别不够的那些信息,并不是内核没有打印,而是在后台输入到了日志文件中去
我们可以通过dmesg命令查看得到那些打印信息