com_err - ライブラリコールの説明 - Linux コマンド集 一覧表
名前
com_err - 汎用のエラー表示ルーチン
書式
#include <et/com_err.h> void (*proc) (const char *, long, const char *, va_list);void com_err (const char *whoami, long code, const char *format, ...);
proc = set_com_err_hook (proc);
proc = reset_com_err_hook ();
void initialize_XXXX_error_table ();
説明
com_err
はエラーメッセージを標準エラーストリーム
stderr
(
stdio
(3S)を見よ)
に表示する。エラーメッセージは、
whoami
文字列 (プログラムの名前やプログラムのある部分を示す)・
値
code
(
compile_et
(1)から引かれる)・
fprintf
(3)スタイルの
format
文字列を使って、残りの引数から
生成した文字列、の 3 つの部分からなる。
com_err
の動作は
set_com_err_hook
を用いて変更できる。
これは
com_err
に渡される引数を用いて呼び出される関数を定義する。
デフォルトでは内部の関数が用いられ、これは整形したテキストをエラー出力に送る。
つまり、プログラムからのエラーメッセージを、例えば
syslog
(3) のような診断ログに振り向けることが容易にできるわけである。
reset_com_err_hook
を用いると、
com_err
の動作をデフォルトの形式に戻すことができる。
この両関数は、実行前の ``hook'' の値を返す。
これらの ``hook'' 関数は、書式の部分で示した
proc
のように宣言しなければならない。
initialize_XXXX_error_table
ルーチンは、名前とそれに対応する文字列とからなるソースファイルから
compile_et
(1)によって自動的に生成される。
それぞれの表は 4 文字までの名前を持ち、ルーチンの名前の
XXXX
の部分になる。これらのルーチンは、
各エラーコードを用いる前に呼び出しておき、
com_err
ライブラリが
エラーコードをこれらの表から認識できるようにしておかなければならない。
com_err
ライブラリのルーチンを用いる全てのソースファイルは、
com_err.h
ヘッダーファイルをインクルードしなければならない。
実行ファイルをリンクするときには、
``-lcom_err''
を用いて
com_err
ライブラリが含まれるようにしなければならない。
関連項目
compile_et
(1),
syslog
(3)
Ken Raeburn, "A Common Error Description Library for UNIX".