日本語 man コマンド類 (ja-man-1.1j_5) と日本語 man ドキュメント (ja-man-doc-5.4 (5.4-RELEASE 用) など) をインストールすると、以下のような man コマンド閲覧、キーワード検索が コンソールからできるようになります。
4.11-RELEASE-K, 5.4-RELEASE-K, 5.5-RELEASE-K, 6.0-RELEASE-K から 6.4-RELEASE-K, 7.0-RELEASE-K から 7.4-RELEASE-K, 8.0-RELEASE-K から 8.4-RELEASE-K, 9.0-RELEASE-K から 9.3-RELEASE-K, 10.0-RELEASE-K から 10.3-RELEASE-K, 11.0-RELEASE-K から 11.4-RELEASE-K, 12.0-RELEASE-K, 12.1-RELEASE-K は、 プライベート版 (小金丸が編集してまとめたもの) ですが、 より多くの翻訳したファイルが含まれています。 (5.4-RELEASE-K から 6.4-RELEASE-K, 7.0-RELEASE-K から 7.4-RELEASE-K, 8.0-RELEASE-K から 8.4-RELEASE-K, 9.0-RELEASE-K から 9.3-RELEASE-K, 10.0-RELEASE-K から 10.3-RELEASE-K, 11.0-RELEASE-K から 11.4-RELEASE-K, 12.0-RELEASE-K から 12.3-RELEASE-K, 13.0-RELEASE-K から 13.2-RELEASE-K は、全翻訳済み)
13.3-STABLE-K, 15.0-CURRENT-K は現在、作成中で日々更新されています。
Table of Contents
STRERROR(3) FreeBSD ライブラリ関数マニュアル STRERROR(3) 名称 perror, strerror, strerror_l, strerror_r, sys_errlist, sys_nerr -- システ ムのエラーメッセージ ライブラリ 標準 C ライブラリ (libc, -lc) 書式 #include <stdio.h> void perror(const char *string); extern const char * const sys_errlist[]; extern const int sys_nerr; #include <string.h> char * strerror(int errnum); char * strerror_l(int errnum, locale_t); int strerror_r(int errnum, char *strerrbuf, size_t buflen); 解説 strerror(), strerror_l(), strerror_r() と perror() 関数は、エラー番号に対 応するエラーメッセージの文字列を検索します。 strerror() 関数は、エラー番号の引数 errnum を受け付け、対応するメッセージ 文字列へのポインタを返します。strerror() は、スレッドセーフではありませ ん。別のスレッドから呼び出される strerror() によって上書きされるかもしれ ない内部の静的バッファへのポインタを返します。 strerror_l() 関数は、errnum エラー番号と locale ロケールハンドル引数を受 け付け、与えられたロケールの指定されたエラーに対応する文字列へのポインタ を返します。strerror_l() は、スレッドセーフであり、その結果は、現在のス レッドから strerror_l() への別の呼び出しによってこのみ上書きすることがで きます。 strerror_r() 関数は、buflen 文字の最大に対して strerrbuf に同じ結果を格納 し、成功すれば、0 を返します。 perror() 関数は、グローバル変数 errno (intro(2)) の現在の値に対応するエ ラーメッセージを見つけて、それに改行を続けて、標準エラーファイル記述子に 書き込みます。引数 string が NULL でなく、ヌル文字を指さないなら、この文 字列は、メッセージ文字列の先頭に追加され、コロンと空白 (``: '') によって それから区切られます。そうでなければ、エラーメッセージ文字列だけが印刷 (表示) されます。 エラー番号が認識されないなら、これらの関数は、10 進数のエラー番号が後続す る ``Unknown error: '' を含んでいるエラーメッセージ文字列を返します。 strerror() と strerror_r() 関数は、警告として EINVAL を返します。この実装 によって認識されるエラー番号は、範囲 0 < errnum < sys_nerr で失敗します。 また、番号 0 も認識されますが、これを利用するアプリケーションは、たぶん errno の指定されない値を使用するためです。 十分な記憶デバイスがエラー文字列を含むために (buflen で指定されるような) strerrbuf で提供されないなら、strerror_r() は、ERANGE を返し、strerrbuf は、切り詰められ、buflen によって指定される長さに適合するためにヌル文字で 終了するエラーメッセージを含んでいます。 メッセージ文字列は、外部配列 sys_errlist を使用して直接アクセスすることが できます。外部の値 sys_nerr は、sys_errlist のメッセージのカウントを含ん でいます。これらの変数の使用は、非推奨です。strerror(), strerror_l() また は strerror_r() は、代わりに使用されるべきです。 使用例 次の使用例は、エラーを報告するために perror() を使用する方法を示していま す。 #include <fcntl.h> #include <stdio.h> #include <stdlib.h> int main(void) { int fd; if ((fd = open("/nonexistent", O_RDONLY)) == -1) { perror("open()"); exit(1); } printf("File descriptor: %d\n", fd); return (0); } 実行するとき、プログラムは、`open(): No such file or directory' (このよう なファイルまたはディレクトリがありません) という行に沿ってエラーメッセー ジが印刷 (表示) されます。 関連項目 intro(2), err(3), psignal(3) 規格 perror() と strerror() 関数は、ISO/IEC 9899:1999 (``ISO C99'') に適合して います。strerror_r() 関数は、IEEE Std 1003.1-2001 (``POSIX.1'') に適合し ています。strerror_l() 関数は、IEEE Std 1003.1-2008 (``POSIX.1'') に適合 しています。 歴史 strerror() と perror() 関数は、4.4BSD ではじめて登場しました。 strerror_r() 関数は、Wes Peters <wes@FreeBSD.org> によって FreeBSD 4.4 で 実装されました。strerror_l() 関数は、FreeBSD 13.0 で追加されました。 バグ strerror() 関数は、続く呼び出しによって上書きされる静的なバッファ中の結果 を返します。 (将来のサポートの保証がない) 推奨されない sys_errlist 変数を使用している プログラムは、矛盾した宣言のためにしばしばコンパイルに失敗します。 sys_errlist オブジェクトのサイズは、FreeBSD の存続期間の間に大きくなり、 いくらかの ABI の安定性保証を破るかもしれません。 FreeBSD 13.0 December 17, 2020 FreeBSD 13.0