Printk在終端顯示

2021-06-19 19:22:39 字數 1311 閱讀 1114

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.關...