printk.9


名前

printk - コンソールログにメッセージを表示する

書式
       #include <linux/kernel.h>

       int printk(const char*fmt, ...)
説明

フォーマットされたメッセージをカーネルコンソールに表示する。 標準入出力ライブラリの printf 関数とよく似ている。 通常メッセージはコンピュータの物理コンソールデバイスに 書かれるが、この振る舞いは register_console 関数で変更 することができる。メッセージはメッセージ・ログブック (message log book)にも格納される。

生成された文字列は、メッセージの優先度を決めるためのメッセージ 優先度コードで始まっている場合もある。優先度コード文字列は <n> という書式を持つ。ここで、nは0から7までの数値である。 以下のマクロが<linux/kernel.h>ヘッダファイルで定義 されている。

KERN_EMERG
システムは使用できない
KERN_ALERT
即時にアクションを取る必要がある
KERN_CRIT
かなり憂慮すべき状態
KERN_ERR
エラー状態
KERN_WARNING
警告状態
KERN_NOTICE
異常ではないが、重要な状態
KERN_INFO
情報
KERN_DEBUG
デバッグ・メッセージ
printk(KERN_NOTICE "Hello, world.\n");

期待された動作をする。

返り値

ログに書き込まれた文字数を返す。

可用性(AVAILABILITY)

Linux 1.0+

関連項目

register_console(9), syslog(2)

kernel/printk.c

著者

Stephen Williams (steve@icarus.com)

バグ

float および double フォーマットはサポートされていない。 これらは、カーネル内部では絶対に使われるべきではない。 (Floats and doubles do not belong inside the kernel anyhow.)

printk の実装では割り込みを受け付けないようになっているので、 原則として割り込みハンドラ内やクリティカル・セクション内部 でも使用できる。しかしながら、登録されたコンソール関数に ついては保証されない。(However, there are no guarantees about the console function that is registered.)