printk()
函式為核心空間裡邊的資訊列印函式,就像
c程式設計時用的
printf()
函式一樣,專供核心中的資訊展示用,他沒有呼叫
printf()
的原因是在編譯核心時還沒有
c的庫函式可以供呼叫。 在
linux
中,可以像使用
printf()
一樣使用
printk()
,也可以加上優先順序使用,比如如下:
printk(kern_alert "lcd light exit.\n");
printk()
函式有八個優先順序定義
,如下:
#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()
優先順序低於
int console_loglevel
,資訊將直接列印在你的終端上
(x環境下好像不行
)。如果同時
syslogd
和klogd
都在執行,資訊也同時新增在檔案
/var/log/messages
,而不管是否顯示在控制台上與否。我們使用像
kern_alert
這樣的高優先順序,來確保
printk()
將資訊輸出到
控制台而不是只是新增到日誌檔案中。
當你編寫真正的實用的模組時,你應該針對可能遇到的情況使用合適的優先順序。
/var/log/messages
裡的資訊可以使用
cat /var/log/messages
進行檢視。
控制台的日誌級別可以使用
cat /peoc/sys/kernel/printk
檢視。
控制台的日誌級別可以用
echo 3 > /peoc/sys/kernel/printk
改變(3
為要寫入的值,可改變)。
Printk在終端顯示
printk 函式為核心空間裡邊的資訊列印函式,就像 c程式設計時用的 printf 函式一樣,專供核心中的資訊展示用,他沒有呼叫 printf 的原因是在編譯核心時還沒有 c的庫函式可以供呼叫。在 linux 中,可以像使用 printf 一樣使用 printk 也可以加上優先順序使用,比如如下 ...
printk列印不能顯示到終端的問題
printk列印不能顯示到終端的問題 2011 05 19 16 01 43 分類 linux printk 對於做嵌入式或者熟悉linux 核心的人來說,對printk這個函式一定不會感到陌生。printk相當於printf的孿生姐妹,她們乙個執行在使用者態,另乙個則在核心態被人們所熟知。原型 i...
linux shell 在終端中顯示
1.表示普通使用者,表示管理員使用者root 2.關於指令碼執行問題。第一種方法 bash test.sh 第二種方法 首先設定shebang的直譯器路徑比如 bin bash,其次賦予其可被執行的屬性chmod 777 test.sh,最後執行時必須使用絕對路徑或者相對路徑 test.sh 3.關...