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() 関数は、引き数
filename と
linenum
が追加されている以外は、
error() と同じである。
生成される出力は、プログラム名の後に
コロン・
filename
の値・コロン・
linenum
の値が書き出される以外は、
error() と同じである。
プリプロセッサの値
__LINE__ と
__FILE__ は、
error_at_line()
を呼び出すときに役に立つ。
その他のプリプロセッサの値も使うことができる。
例えば、これらの引き数で入力ファイルにおける位置を参照できる。
大域変数
error_one_per_line が 0
以外に設定されている場合、
filename と
linenum
の値が共に等しい
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.65 の一部
である。プロジェクトの説明とバグ報告に関する情報は
http://www.kernel.org/doc/man-pages/
に書かれている。