STRERROR

Section: C Library Functions (3)
索引 jman

BSD mandoc
 

索引

名称

perror strerror strerror_r sys_errlist sys_nerr - システムのエラーメッセージ  

索引

ライブラリ

Lb libc  

索引

書式

In stdio.h Ft void Fn perror const char *string Vt extern const char * const sys_errlist[] ; Vt extern const int sys_nerr ; In string.h Ft char * Fn strerror int errnum Ft int Fn strerror_r int errnum char * strerrbuf size_t buflen  

索引

解説

Fn strerror , Fn strerror_r および Fn perror 関数は、エラー番号に対応するエラーメッセージ文字列を探し出します。

Fn strerror 関数は、エラー番号の引数 Fa errnum を受け取って、それに対応するメッセージ文字列へのポインタを返します。

Fn strerror_r 関数は、 同じ結果を 最大 Fa buflen 文字数の Fa strerrbuf に直し、 成功した場合は 0 を返します。

Fn perror 関数は、大域変数 errno (intro(2) ) の現在の値に対応するエラーメッセージを探して、 それに改行をつけて標準エラーファイル記述子に書込みます。引数 Fa string が ヌル 以外であり、ヌル文字を指さない場合は、 この文字列はメッセージ文字列の前にコロンとスペース (`:' ) で区切って追加されます。 それ以外の場合は、エラーメッセージ文字列のみが印字されます。

Fa errnum がエラー番号として認識できない場合は、 Fn strerror は、 ``Unknown error:  '' のエラーメッセージ文字列の後に、 10 進数のエラー番号を返し、 errno に Er EINVAL をセットします。 Fn strerror_r は、 Fa strerrbuf を変更せずに Er EINVAL を返します。 エラー番号が 0 <= Fa errnum < Fa sys_nerr 内の実装では、認識できません。

エラー文字列を含む ( Fa buflen で指定されているより) Fa strerrbuf が不十分な領域の場合、 Fn strerror_r は Er ERANGE を返し、 Fa strerrbuf には、 Fa buflen で指定された ヌル文字で終了する長さの 切り捨てたエラーメッセージが入ります。

メッセージ文字列には、外部配列 sys_errlist を使って直接アクセスすることができます。外部値 sys_nerr には sys_errlist の中にあるメッセージのカウントが入っています。 これらの変数を使用することには賛成できません。代わりに、 Fn strerror または Fn strerror_r を使った方がよいでしょう。  

索引

関連項目

intro(2), psignal(3)  

索引

歴史

Fn strerror および Fn perror 関数は、 BSD 4.4 ではじめて登場しました。 Fn strerror_r 関数は、 An Wes Peters Aq wes@freebsd.org . によって Fx 4.4 で実装されました。  

索引

バグ

認識できないエラー番号に対しては、 Fn strerror 関数はその結果を静的バッファに返し、 それは以降の呼び出しによって上書きされる可能性があります。

sys_errlist 変数を使用している好ましくないプログラムは、 その変数を一貫性なく宣言するために失敗することがしばしばあります。


 

索引

Index

名称
ライブラリ
書式
解説
関連項目
歴史
バグ

jman



Time: 07:07:02 GMT, January 12, 2009