printk
読み:プリント-ケイ
外語:printk
Linuxで、カーネルコンソールにメッセージを表示するライブラリ関数。
書式
#include <linux/kernel.h>
int printk(const char *fmt, ...);
特徴
用法
printfとよく似た使い方が可能な、メッセージをカーネルコンソールに表示するための関数。
下位の関数にvprintk()がある。
ここで出力した内容はそのままでは画面に出ないが、その場合でも、dmesgコマンドで表示できる。
なお、数値の変数型は整数型のみ対応で、実数型(float/double)には対応していない。
優先度
表示文字列の先頭のに情報を付加することで、0から7まででメッセージの優先度をあらわすことができる。
実装によるが、現在のLinuxの実装では、<>で囲んだ1文字(計3文字)で定義される。
但し直接記述すると将来的な拡張などで互換性が損なわれるので、対応するマクロが<linux/kernel.h>ヘッダーファイルで定義されている。
- "<0>" KERN_EMERG ‐ システムが使用不能な状況
- "<1>" KERN_ALERT ‐ 即時に対応を講じる必要がある状況
- "<2>" KERN_CRIT ‐ かなり憂慮すべき状況
- "<3>" KERN_ERR ‐ 一般的なエラー
- "<4>" KERN_WARNING ‐ 一般的な警告
- "<5>" KERN_NOTICE ‐ 異常ではないが、重要な状況
- "<6>" KERN_INFO ‐ 情報
- "<7>" KERN_DEBUG ‐ デバッグ・メッセージ
このほか、通常のアプリケーションは使用しないが、次の二つが定義されている。
- "<d>" KERN_DEFAULT ‐ デフォルトのカーネルログレベルを使用
- "<c>" KERN_CONT ‐ ログの継続(ブートアップ中専用)
FreeBSD
PC UNIXとしてLinuxと並んで有名なFreeBSDなどBSDの場合、標準関数であるprintf(3)に似たカーネル内関数としてprintf(9)が提供されている。
したがって、FreeBSDではprintkは使用されていない。
再検索