.\" Copyright (c) 1988 Massachusetts Institute of Technology, .\" Student Information Processing Board. .\" .\" Japanese Version Copyright (c) 2000 NAKANO Takeo all rights reserved. .\" Translated Thu 13 2000 by NAKANO Takeo .\" .TH COM_ERR 3 "22 Nov 1988" SIPB .SH 名前 com_err \- 汎用のエラー表示ルーチン .SH 書式 .nf #include void (*\fIproc\fR) (const char *, long, const char *, va_list); .PP void com_err (const char *whoami, long code, const char *format, ...); .PP proc = set_com_err_hook (proc); .PP proc = reset_com_err_hook (); .PP void initialize_XXXX_error_table (); .fi .SH 説明 .I com_err はエラーメッセージを標準エラーストリーム .I stderr .RI ( stdio (3S) を見よ) に表示する。エラーメッセージは、 .I whoami 文字列 (プログラムの名前やプログラムのある部分を示す)・ 値 .I code .RI ( compile_et (1) から引かれる)・ .BR fprintf (3) スタイルの .I format 文字列を使って、残りの引数から 生成した文字列、の 3 つの部分からなる。 .I com_err の動作は .I set_com_err_hook を用いて変更できる。 これは .I com_err に渡される引数を用いて呼び出される関数を定義する。 デフォルトでは内部の関数が用いられ、これは整形したテキストをエラー出力に送る。 つまり、プログラムからのエラーメッセージを、例えば .BR syslog (3) のような診断ログに振り向けることが容易にできるわけである。 .I reset_com_err_hook を用いると、 .I com_err の動作をデフォルトの形式に戻すことができる。 この両関数は、実行前の ``hook'' の値を返す。 これらの ``hook'' 関数は、書式の部分で示した .I proc のように宣言しなければならない。 .I initialize_XXXX_error_table ルーチンは、名前とそれに対応する文字列とからなるソースファイルから .IR compile_et (1) によって自動的に生成される。 それぞれの表は 4 文字までの名前を持ち、ルーチンの名前の .B XXXX の部分になる。これらのルーチンは、 各エラーコードを用いる前に呼び出しておき、 .I com_err ライブラリが エラーコードをこれらの表から認識できるようにしておかなければならない。 .I com_err ライブラリのルーチンを用いる全てのソースファイルは、 .B com_err.h ヘッダーファイルをインクルードしなければならない。 実行ファイルをリンクするときには、 .I ``-lcom_err'' を用いて .I com_err ライブラリが含まれるようにしなければならない。 .\" .IR for manual entries .\" .PP for paragraph breaks .SH 関連項目 .BR compile_et (1), .BR syslog (3) Ken Raeburn, "A Common Error Description Library for UNIX".