Provided by: manpages-ja-dev_0.5.0.0.20210215+dfsg-1_all bug

名前

       error,  error_at_line,  error_message_count,  error_one_per_line,  error_print_progname  -
       glibc のエラー書き出し関数

書式

       #include <error.h>

       void error(int status, int errnum, const char *format, ...);

       void error_at_line(int status, int errnum, const char *filename,
                          unsigned int linenum, const char *format, ...);

       extern unsigned int error_message_count;

       extern int error_one_per_line;

       extern void (*error_print_progname) (void);

説明

       error()  は汎用的なエラー書き出し関数である。 この関数は標準出力 (stdout)   に書き出してか
       ら、標準エラー出力 (stderr)  に書き出す。 書き出す内容は、プログラム名・コロン・スペース・
       printf(3)  形式の フォーマット文字列 format で指定されたメッセージである。 errnum が 0  以
       外の場合、2  つ目のコロンとスペースの後に  strerror(errnum) で指定された文字列も書き出す。
       format に必要な任意の引き数が、引き数リストの format の後に続く。 出力の終端には改行文字が
       付く。

       error()    で出力されるプログラム名は、大域変数  program_invocation_name(3)   の値である。
       program_invocation_name の初期値は main()  の argv[0] の値と等しい。  この変数の値は変更可
       能であり、変更すると error()  の出力が変わる。

       status  が 0 以外の場合、 error()  は exit(3) を呼び出して、指定された終了ステータスでプロ
       グラムを終了させる。

       error_at_line()  関数は、引き数 filenamelinenum が追加されている以外は、 error()  と同
       じである。  生成される出力は、プログラム名の後に コロン・filename の値・コロン・linenum の
       値が書き出される以外は、 error()  と同じである。 プリプロセッサの値 __LINE____FILE__
       は、  error_at_line()  を呼び出すときに役に立つ。 その他のプリプロセッサの値も使うことがで
       きる。 例えば、これらの引き数で入力ファイルにおける位置を参照できる。

       大域変数 error_one_per_line が 0 以外に設定されている場合、 filenamelinenum の値が共に
       等しい error_at_line()  の呼び出しは、 1 つの (最初の) メッセージの出力にまとめられる。

       大域変数 error_message_count は、 error()  と error_at_line() で出力されたメッセージの数を
       表す。

       大域変数 error_print_progname に 関数のアドレスが割り当てられている場合 (つまり NULL  では
       ない場合)、   メッセージの前にプログラム名とコロンを書き出すのではなく、  この関数を呼び出
       す。 この関数は標準エラー出力 (stderr) に対しての適切な文字列を書き出さなければならない。

準拠

       これらの関数と変数は GNU  による拡張であり、  移植性を考えたプログラムでは使用すべきではな
       い。

関連項目

       err(3), errno(3), exit(3), perror(3), program_invocation_name(3), strerror(3)

この文書について

       この  man ページは Linux man-pages プロジェクトのリリース 3.79 の一部 である。プロジェクト
       の説明とバグ報告に関する情報は http://www.kernel.org/doc/man-pages/ に書かれている。