.\" Copyright (C) 2006 Justin Pryzby .\" and Copyright (C) 2006 Michael Kerrisk .\" .\" %%%LICENSE_START(PERMISSIVE_MISC) .\" Permission is hereby granted, free of charge, to any person obtaining .\" a copy of this software and associated documentation files (the .\" "Software"), to deal in the Software without restriction, including .\" without limitation the rights to use, copy, modify, merge, publish, .\" distribute, sublicense, and/or sell copies of the Software, and to .\" permit persons to whom the Software is furnished to do so, subject to .\" the following conditions: .\" .\" The above copyright notice and this permission notice shall be .\" included in all copies or substantial portions of the Software. .\" .\" THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, .\" EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF .\" MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. .\" IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY .\" CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, .\" TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE .\" SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. .\" %%%LICENSE_END .\" .\" References: .\" glibc manual and source .\"******************************************************************* .\" .\" This file was generated with po4a. Translate the source file. .\" .\"******************************************************************* .\" .\" Japanese Version Copyright (c) 2006 Yuichi SATO .\" all rights reserved. .\" Translated 2006-08-04 by Yuichi SATO , LDP v2.36 .\" .TH ERROR 3 2010\-08\-29 GNU "Linux Programmer's Manual" .SH 名前 error, error_at_line, error_message_count, error_one_per_line, error_print_progname \- glibc のエラー書き出し関数 .SH 書式 .nf \fB#include \fP \fBvoid error(int \fP\fIstatus\fP\fB, int \fP\fIerrnum\fP\fB, const char *\fP\fIformat\fP\fB, ...);\fP \fBvoid error_at_line(int \fP\fIstatus\fP\fB, int \fP\fIerrnum\fP\fB, const char *\fP\fIfilename\fP\fB,\fP \fB unsigned int \fP\fIlinenum\fP\fB, const char *\fP\fIformat\fP\fB, ...);\fP \fBextern unsigned int \fP\fIerror_message_count\fP\fB;\fP \fBextern int \fP\fIerror_one_per_line\fP\fB;\fP \fBextern void (*\fP\fIerror_print_progname\fP\fB) (void);\fP .fi .SH 説明 \fBerror\fP() は汎用的なエラー書き出し関数である。 この関数は標準出力 (\fIstdout\fP) に書き出してから、標準エラー出力 (\fIstderr\fP) に書き出す。 書き出す内容は、プログラム名・コロン・スペース・ \fBprintf\fP(3) 形式の フォーマット文字列 \fIformat\fP で指定されたメッセージである。 \fIerrnum\fP が 0 以外の場合、2 つ目のコロンとスペースの後に \fIstrerror(errnum)\fP で指定された文字列も書き出す。 \fIformat\fP に必要な任意の引き数が、引き数リストの \fIformat\fP の後に続く。 出力の終端には改行文字が付く。 \fBerror\fP() で出力されるプログラム名は、大域変数 \fBprogram_invocation_name\fP(3) の値である。 \fIprogram_invocation_name\fP の初期値は \fImain\fP() の \fIargv[0]\fP の値と等しい。 この変数の値は変更可能であり、変更すると \fBerror\fP() の出力が変わる。 \fIstatus\fP が 0 以外の場合、 \fBerror\fP() は \fBexit\fP(3) を呼び出して、指定された終了ステータスでプログラムを終了させる。 \fBerror_at_line\fP() 関数は、引き数 \fIfilename\fP と \fIlinenum\fP が追加されている以外は、 \fBerror\fP() と同じである。 生成される出力は、プログラム名の後に コロン・\fIfilename\fP の値・コロン・\fIlinenum\fP の値が書き出される以外は、 \fBerror\fP() と同じである。 プリプロセッサの値 \fB__LINE__\fP と \fB__FILE__\fP は、 \fBerror_at_line\fP() を呼び出すときに役に立つ。 その他のプリプロセッサの値も使うことができる。 例えば、これらの引き数で入力ファイルにおける位置を参照できる。 大域変数 \fIerror_one_per_line\fP が 0 以外に設定されている場合、 \fIfilename\fP と \fIlinenum\fP の値が共に等しい \fBerror_at_line\fP() の呼び出しは、 1 つの (最初の) メッセージの出力にまとめられる。 大域変数 \fIerror_message_count\fP は、 \fBerror\fP() と \fBerror_at_line\fP() で出力されたメッセージの数を表す。 大域変数 \fIerror_print_progname\fP に 関数のアドレスが割り当てられている場合 (つまり NULL ではない場合)、 メッセージの前にプログラム名とコロンを書き出すのではなく、 この関数を呼び出す。 この関数は標準エラー出力 (\fIstderr\fP) に対しての適切な文字列を書き出さなければならない。 .SH 準拠 これらの関数と変数は GNU による拡張であり、 移植性を考えたプログラムでは使用すべきではない。 .SH 関連項目 \fBerr\fP(3), \fBerrno\fP(3), \fBexit\fP(3), \fBperror\fP(3), \fBprogram_invocation_name\fP(3), \fBstrerror\fP(3) .SH この文書について この man ページは Linux \fIman\-pages\fP プロジェクトのリリース 3.79 の一部 である。プロジェクトの説明とバグ報告に関する情報は http://www.kernel.org/doc/man\-pages/ に書かれている。