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

名前

       perror - システムエラーメッセージを出力する

書式

       #include <stdio.h>

       void perror(const char *s);

       #include <errno.h>

       const char * const sys_errlist[];
       int sys_nerr;
       int errno; /* 実際にこのように宣言されているわけではない。 errno(3) 参照 */

   glibc 向けの機能検査マクロの要件 (feature_test_macros(7)  参照):

       sys_errlist, sys_nerr: _BSD_SOURCE

説明

       関数  perror()   は、システムコールやライブラリ関数の呼び出しにおいて、最後に発生した  エラーに関する説明
       メッセージを生成し、標準エラー出力に出力する。 (s が NULL でなく、 *s がヌルバイト ('\0') でない場合には)
       引き数の文字列 s がまず出力され、続いてコロン、空白が出力され、 それからメッセージと改行が出力される。

       このメッセージを最大限活用するためには、引き数文字列にエラーが発生した  関数名を入れておくとよい。 エラー
       番号は外部変数 errno から取得される。 errno はエラーが発生した時に設定され、 成功した呼び出しではクリアさ
       れない。

       大域変数のエラーリスト sys_errlist[] は errno を添字とする配列で、この 配列から改行無しのエラーメッセージ
       が取得される。 テーブルでの最大のメッセージ 番号は sys_nerr -1 となる。  このテーブルを直接参照する際には
       注意すること。   なぜなら、新しいエラー番号が   sys_errlist[]   に追加済とは限らないからである。   現在で
       は、sys_errlist[] の使用は非推奨となっている。

       システムコールが失敗した場合、通常、返り値として -1 が返り、 errno にエラーを識別する値が設定される (設定
       されるエラー番号は  <errno.h>  に記載されている)。 多くのライブラリ関数も同様の動作となる。 関数 perror()
       は、このエラーコードの可読なメッセージへの変換を行う。 errno は、ライブラリ呼び出しが成功した後には未定義
       であることに注意が必要である: その呼び出し自身は成功したとしても、内部で呼び出した他のライブラリ関数が 失
       敗して、その結果をこの変数に設定することがあるからだ。 よって、失敗した呼び出しの直後に perror()   を呼ば
       ない場合には errno の値を 保存しておかなければならない。

準拠

       関数  perror()   と外部変数 errno (errno(3)  参照) は C89, 4.3BSD, POSIX.1-2001 に準拠している。 外部変数
       sys_nerrsys_errlist は BSD に準拠している。

注意

       外部変数 sys_nerrsys_errlist は glibc で定義されているが、 <stdio.h> に含まれている。

関連項目

       err(3), errno(3), error(3), strerror(3)

この文書について

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

                                                   2014-05-28                                          PERROR(3)