驅動學習之printk函數

       (一) printk函數中幾個宏的消息級別的定義

#define KERN_EMERG "<0>"   /*緊急事件,一般是系統崩潰之前的提示信息*/

#define KERN_ALERT   "<1>"  /*必須立即採取行動*/

#define KERN_CRIT      "<2>"  /*臨界狀態,通常涉及嚴重的硬件或者軟件操作失誤*/

#define KERN_ERR       "<3>"  /*用戶報告錯誤狀態,設備驅動會經常使用KERN_ERR來報告硬件錯誤*/

#define KERN_WARNING "<4>" /*對可能出現的情況進行警告,這類情況通常不會對系統造成嚴重的問題*/

#define KERN_NOTICE  "<5>" /*有必要進行提示的正常情形,許多與安全相關的狀態用這個級別進行報告*/

#define KERN_INFO       "<6>" /*內核提示性信息,很多驅動程序再啓動的時候以這個級別打印找到的硬件信息*/

#define KERN_DEBUG   "<7>" /*用於調試信息*/

(二)printk函數的使用

static int hello_init(void)
  {
     
     printk(KERN_ALERT "hello world!\n");

          return 0;
 }


其中,/proc/sys/kernel/printk的printk文件可以調節printk的輸出級別:

控制檯日誌級別:一般表示優先級高於該值的消息將被打印到控制檯;

默認的消息日誌級別:一般表示用戶打印沒有任何定義優先級的消息(即像上例hello前什麼都不寫);

最低的控制檯日誌級別:表示控制檯級別可被設置的最小值;

默認的控制檯日誌級別:用來設置控制檯日誌級別的默認值。



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章