PERROR(3)

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

書式
#include <stdio.h>

void perror(const char *s);

#include <errno.h>

const char *sys_errlist[];
int sys_nerr;

説明
関数 perror() は、最後にエラー終了したシステムコールないしライブラリ関数の エラーを説明するメッセージを作成し、標準エラー出力に出力する。 引数の文字列 s を先頭に、コロン、空白、メッセージ、改行の順に出力される。 このメッセージを最大限活用するためには、引数文字列はエラー発生した 関数名を含むべきである。 エラー番号は外部変数 errno から得られる。エラー番号はエラーが発生した時に設定され、正しい 呼出しが行われても errno はクリアされない。 大域変数 sys_errlist[] は、 errno を添字とし、改行無しのエラーメッセージを得るために用いられる。 テーブルでの最大のメッセージ番号は sys_nerr -1 となる。 このテーブルへの直接参照には注意すること。なぜなら、新しいエラー番号が sys_errlist[] に追加されているとは限らないからである。 システムコールが失敗した場合、返り値は通常 -1 が返り、 errno にエラーを識別する値が設定される。(エラー番号は <errno.h> に記述されている。) 多くのライブラリ関数も同様の動作となる。 関数 perror() は、このエラーコードの可読なメッセージへの変換を提供する。 errno は、ライブラリ呼出しが成功した後には未定義であることに注意すること: その呼出し自身は成功したとしても、内部で呼び出した他のライブラリ関数が 失敗して、その結果をこの変数に設定することもあるので。 よって、失敗した呼出しのすぐ後に perror の呼出しを行わない場合には errno の値は 保存しておかなければならない。

準拠
ANSI C, BSD 4.3, POSIX, X/OPEN

関連項目
strerror(3)