Kernel-printk

Printk

printkprintf 的用法是差不多的,最大区别是printk可以指定打印优先级。

另外一个区别就是 printf只在用户态 printk用于内核态。


定义于: $itop_kernel/include/linux/printk.h

1
2
3
4
5
6
7
8
#define KERN_EMERG	"<0>"	/* system is unusable			*/
#define KERN_ALERT "<1>" /* action must be taken immediately */
#define KERN_CRIT "<2>" /* critical conditions */
#define KERN_ERR "<3>" /* error conditions */
#define KERN_WARNING "<4>" /* warning conditions */
#define KERN_NOTICE "<5>" /* normal but significant condition */
#define KERN_INFO "<6>" /* informational */
#define KERN_DEBUG "<7>" /* debug-level messages */

而终端控制台的输出优先级配置在文件/proc/sys/kernel/printk中:

1
2
[root: /]# cat /proc/sys/kernel/printk
4 4 1 7

4 4 1 7分别是:

4:console_loglevel //这个就是控制台的默认优先级

4:default_message_loglevel // 这个是printk的默认输出优先级

1:minimum_console_level

7:default_console_loglevel

欣赏此文? 求鼓励,求支持!