.\" Copyright (c) 1988 Massachusetts Institute of Technology, .\" Student Information Processing Board. All rights reserved. .\" .\" %FreeBSD: src/contrib/com_err/com_err.3,v 1.1 1999/09/04 09:48:58 markm Exp % .\" .\" $FreeBSD$ .\" .TH COM_ERR 3 "22 Nov 1988" SIPB .SH 名称 com_err \- 共通エラー表示ルーチン .SH 書式 .nf #include .PP void com_err (whoami, code, format, ...); const char *whoami; long code; const char *format; .PP proc = set_com_err_hook (proc); .fi void (* .I proc ) (const char *, long, const char *, va_list); .nf .PP proc = reset_com_err_hook (); .PP void initialize_XXXX_error_table (); .fi .SH 解説 .I com_err は、 .I whoami 文字列で構成される標準エラーストリーム .I stderr .IR (stdio (3S) を参照) にエラーメッセージを表示します。 .I whoami 文字列は、プログラム名またはプログラムの一部の後に、 .I code 値 .IR (compile_et(1) から導出されたもの) から生成されたエラーメッセージ、および .IR fprintf (3) と同じスタイルで、 .I format 文字列と以降の引数を使用して作成された 文字列が続いたものを指定するはずです。 .I com_err の動作は、 .I set_com_err_hook を使用して修正できます。これによって、 .I com_err に渡される引数とともに呼び出されるプロシージャが定義されます。 これは、フォーマットされたテキストを エラー出力に送信するデフォルトの内部プロシージャの代わりです。 このように、プログラムからのエラーメッセージはすべて .IR syslog (3) のような別の形式の診断ログに簡単に転用できます。 .I reset_com_err_hook を使用して、 .I com_err をデフォルトの形式に復元することもできます。 いずれのプロシージャも前のフック値を返します。 これらのフックプロシージャは、上記の書式の .I proc に指定された宣言がなければなりません。 .I initialize_XXXX_error_table ルーチンは、名前および対応する文字列の入ったソースファイルから .IR compile_et (1) が機械的に生成します。 各テーブルには、最高 4 文字の名前があります。 この名前はルーチンの名前で .B XXXX の代わりに使用されます。 これらのルーチンは、 対応するエラーコードが使用される前に呼び出す必要があるので、 .I com_err ライブラリは、これらのテーブルが使用されるときに、 これらのテーブルからエラーコードを認識しようとします。 .B com_err.h ヘッダファイルは、 .I com_err ライブラリのルーチンを使用するソースファイルに インクルードする必要があります。実行可能ファイルは、 .I com_err ライブラリがインクルードされるように、 .I ``-lcom_err'' を使用してリンクする必要があります。 .SH 関連項目 .IR compile_et (1), .IR syslog (3) Ken Raeburn, "A Common Error Description Library for UNIX".