I'm very pleased to announce the release of our new website and documentation using the new toolchain with Hugo and AsciiDoctor. To get more information about the new toolchain please read the FreeBSD Documentation Project Primer[1], Hugo docs[2] and AsciiDoctor docs[3]. Acknowledgment: Benedict Reuschling <bcr@> Glen Barber <gjb@> Hiroki Sato <hrs@> Li-Wen Hsu <lwhsu@> Sean Chittenden <seanc@> The FreeBSD Foundation [1] https://docs.FreeBSD.org/en/books/fdp-primer/ [2] https://gohugo.io/documentation/ [3] https://docs.asciidoctor.org/home/ Approved by: doceng, core
99 lines
2.4 KiB
Groff
99 lines
2.4 KiB
Groff
.\" 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 <com_err.h>
|
|
.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".
|