printk 使用方法 收藏

2021-05-11 14:11:01 字數 1353 閱讀 5481

核心通過 printk() 輸出的資訊具有日誌級別,日誌級別是通過在 printk() 輸出的字串前加乙個帶尖括號的整數來控制的,如 printk("<6>hello, world!/n");。核心中共提供了八種不同的日誌級別,在 linux/kernel.h 中有相應的巨集對應。

#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 */

#define kern_info     "<6>"    /* informational */

#define kern_debug    "<7>"    /* debug-level messages */

所以 printk() 可以這樣用:printk(kern_info "hello, world!/n");。

未指定日誌級別的 printk() 採用的預設級別是 default_message_loglevel,這個巨集在 kernel/printk.c 中被定義為整數 4,即對應kern_warning。

在 /proc/sys/kernel/printk 會顯示4個數值(可由 echo 修改),分別表示當前控制台日誌級別、未明確指定日誌級別的預設訊息日誌級別、最小(最高)允許設定的控制台日誌級別、引導時預設的日誌級別。當 printk() 中的訊息日誌級別小於當前控制台日誌級別時,printk 的資訊(要有/n符)就會在控制台上顯示。但無論當前控制台日誌級別是何值,通過 /proc/kmsg (阻塞)(或使用dmesg)總能檢視。另外如果配置好並執行了 syslogd 或 klogd,沒有在控制台上顯示的 printk 的資訊也會追加到 /var/log/messages.log 中。

char myname = "chinacodec/n";

printk(kern_info "hello, world %s!/n", myname);

dmesg |tail

js中常見的陣列使用方法,收藏備用

做前端的小夥伴經常要和陣列打交道,比如常見的陣列去重 選擇陣列中的隨機項 獲取陣列中最大 最小值等等。今天我們一起來封裝一些常見的方法,收藏備用!陣列去重 const removeduplicate arr new set arr removeduplicate 1,2,3,4,4,2,3,1,1 ...

pythonpip使用方法 pip使用方法整理

匯出專案已安裝的pip包 pip list 檢視專案中安裝的包 pip freeze requirements.txt 將專案中所用到的第三方庫輸出到requirements.txt中 pip install 版本號 pip install i 本次使用清華源進行安裝 離線安裝第三方庫 一鍵安裝整個...

使用方法 離型劑使用方法

1 使用離型劑前必須確保模具乾淨,無粉塵 蠟垢 樹脂垢 油汙等殘留物質。可以使用專用的模具潔模劑進行清洗,不可用其他液體清洗,以免清洗不乾淨或損壞模具。另外,如果您的模具是新的,在清洗乾淨後,務必要對模具進行初步處理,用離型劑在模具表面噴 刷塗5 6次,之後方可正常投入生產。2 使用離型劑時,首先要...