X-Git-Url: http://git.osdn.net/view?a=blobdiff_plain;ds=sidebyside;f=release%2Fman3%2Fstrerror.3;h=ca38186a4131a36bb5229c9daf7d138f39463f6a;hb=dba08e2eee1afb613e4e8e9310eb752cb06f45de;hp=402101b66acd3a6d72e3cb6715b9ef36258df3fa;hpb=ce024239a1d8e74a7a44f7c24cee4375cb13b3ef;p=linuxjm%2FLDP_man-pages.git diff --git a/release/man3/strerror.3 b/release/man3/strerror.3 index 402101b6..ca38186a 100644 --- a/release/man3/strerror.3 +++ b/release/man3/strerror.3 @@ -1,6 +1,7 @@ .\" Copyright (C) 1993 David Metcalfe (david@prism.demon.co.uk) -.\" and Copyright (C) 2005, Michael Kerrisk +.\" and Copyright (C) 2005, 2014 Michael Kerrisk .\" +.\" %%%LICENSE_START(VERBATIM) .\" Permission is granted to make and distribute verbatim copies of this .\" manual provided the copyright notice and this permission notice are .\" preserved on all copies. @@ -20,6 +21,7 @@ .\" .\" Formatted or processed versions of this manual, if unaccompanied by .\" the source, must acknowledge the copyright and authors of this work. +.\" %%%LICENSE_END .\" .\" References consulted: .\" Linux libc source code @@ -34,161 +36,132 @@ .\" 2005-12-13, mtk, Substantial rewrite of strerror_r() description .\" Addition of extra material on portability and standards. .\" +.\"******************************************************************* +.\" +.\" This file was generated with po4a. Translate the source file. +.\" +.\"******************************************************************* +.\" .\" Japanese Version Copyright (c) 1997 YOSHINO Takashi .\" all rights reserved. .\" Translated 1997-01-20, YOSHINO Takashi .\" Updated & Modified 2001-11-03, Yuichi SATO .\" Updated 2005-12-26, Akihiro MOTOKI .\" Updated 2007-09-06, Akihiro MOTOKI , LDP v2.64 +.\" Updated 2012-05-02, Akihiro MOTOKI +.\" Updated 2013-07-22, Akihiro MOTOKI .\" -.\"WORD GNU-specific GNU 仕様の -.\"WORD XSI-compliant XSI 準拠の -.\" -.TH STRERROR 3 2009-03-30 "" "Linux Programmer's Manual" +.TH STRERROR 3 2014\-03\-18 "" "Linux Programmer's Manual" .SH 名前 -strerror, strerror_r \- エラー番号を説明する文字列を返す。 +strerror, strerror_r, strerror_l \- エラー番号を説明する文字列を返す。 .SH 書式 .nf -.B #include +\fB#include \fP .sp -.BI "char *strerror(int " errnum ); +\fBchar *strerror(int \fP\fIerrnum\fP\fB);\fP .sp -.BI "char *strerror_r(int " errnum ", char *" buf ", size_t " buflen ); +\fBint strerror_r(int \fP\fIerrnum\fP\fB, char *\fP\fIbuf\fP\fB, size_t \fP\fIbuflen\fP\fB);\fP + /* XSI\-compliant */ +.sp +\fBchar *strerror_r(int \fP\fIerrnum\fP\fB, char *\fP\fIbuf\fP\fB, size_t \fP\fIbuflen\fP\fB);\fP + /* GNU\-specific */ + +\fBchar *strerror_l(int \fP\fIerrnum\fP\fB, locale_t \fP\fIlocale\fP\fB);\fP .fi .sp .in -4n -glibc 向けの機能検査マクロの要件 -.RB ( feature_test_macros (7) -参照): +glibc 向けの機能検査マクロの要件 (\fBfeature_test_macros\fP(7) 参照): .in +.ad l .sp -次の場合には -XSI 準拠のバージョンの -.BR strerror_r () -が提供される: +\fBstrerror_r\fP(): +.RS 4 +次の場合には XSI 準拠のバージョンが提供される: .br (_POSIX_C_SOURCE\ >=\ 200112L || _XOPEN_SOURCE\ >=\ 600) && !\ _GNU_SOURCE -.fi +.br +それ以外の場合、GNU バージョンが提供される。 +.RE +.ad .SH 説明 -.BR strerror () -関数は、引き数 \fIerrnum\fP で渡されたエラーコードについての -説明が入った文字列へのポインタを返す。 -可能であるならば、適切な言語を選択するために、 -現在のロケールの -.B LC_MESSAGES -を使う。 -この文字列は、アプリケーションで変更してはならないが、 -その後に起こる -.BR perror (3) -や -.BR strerror () -の呼び出しで -変更されても構わない。 -この文字列を変更するライブラリ関数はない。 - -.BR strerror_r () -関数は -.BR strerror () -と似ているが、 -スレッドセーフである。 -この関数には二種類のバージョンが存在し、 -POSIX.1-2001 で規定された XSI 準拠のバージョン -(glibc 2.3.4 以降で利用可能) と、 -GNU 仕様のバージョン (glibc 2.0 以降で利用可能) である。 -「書式」の節に記載された機能検査マクロの場合には、 -XSI 準拠のバージョンが提供される。 -それ以外の場合には GNU 仕様のバージョンが提供される。 -機能検査マクロが一つも明示的に定義されない場合、 -(glibc 2.4 以降では) デフォルトで -.B _POSIX_SOURCE -は値 200112l で定義され、その結果 -XSI 準拠のバージョンの -.BR strerror_r () -がデフォルトで提供される。 +.\" +\fBstrerror\fP() 関数は、引き数 \fIerrnum\fP で渡されたエラーコードについての説明が入った文字列へのポインタを返す。 +可能であるならば、適切な言語を選択するために、 現在のロケールの \fBLC_MESSAGES\fP を使う。(例えば、 \fIerrnum\fP が +\fBEINVAL\fP の場合、説明として "Invalid argument" が返される。) この文字列は、アプリケーションで変更してはならないが、 +これ以降に行われる \fBstrerror\fP() や \fBstrerror_l\fP() の呼び出しで変更されても構わない。 \fBperror\fP(3) +などの、これ以外のライブラリ関数ではこの文字列は変更されない。 +.SS strerror_r() +\fBstrerror_r\fP() 関数は \fBstrerror\fP() と似ているが、スレッドセーフである。 +この関数には二種類のバージョンが存在し、 POSIX.1\-2001 で規定された XSI +準拠のバージョン (glibc 2.3.4 以降で利用可能だが、glibc 2.13 までは +POSIX 準拠ではない) と、 GNU 仕様のバージョン (glibc 2.0 以降で利用可能) +である。 「書式」の節に記載された機能検査マクロの場合には、 XSI 準拠の +バージョンが提供される。それ以外の場合には GNU 仕様のバージョンが提供さ +れる。機能検査マクロが一つも明示的に定義されない場合、 (glibc 2.4 以降 +では) デフォルトで \fB_POSIX_SOURCE\fP は値 200112l で定義され、その結果 +XSI 準拠のバージョンの \fBstrerror_r\fP() がデフォルトで提供される。 -移植性が必要なアプリケーションでは、 -XSI 準拠の -.BR strerror_r () -を使う方がよい。 -この関数は、ユーザーから提供される長さ -.I buflen -のバッファ -.I buf -にエラー文字列を返す。 +移植性が必要なアプリケーションでは、 XSI 準拠の \fBstrerror_r\fP() を使う方がよい。 この関数は、ユーザーから提供される長さ +\fIbuflen\fP のバッファ \fIbuf\fP にエラー文字列を返す。 -GNU 仕様の -.BR strerror_r () -は、エラーメッセージを格納した文字列へのポインタを返す。 -返り値は、この関数が -.I buf -に格納した文字列へのポインタか、 -何らかの (不変な) 静的な文字列へのポインタ、のいずれかとなる -(後者の場合は -.I buf -は使用されない)。 -.I buf -に文字列が格納される場合は、 -最大で -.I buflen -バイトが格納され -.RI ( buflen -が小さ過ぎたときには文字列は切り詰められる)、 -文字列には必ず終端ヌル文字が含まれる。 +.\" +GNU 仕様の \fBstrerror_r\fP() は、 エラーメッセージを格納した文字列へのポインタを返す。 返り値は、 この関数が \fIbuf\fP +に格納した文字列へのポインタか、 何らかの (不変な) 静的な文字列へのポインタ、 のいずれかとなる (後者の場合は \fIbuf\fP は使用されない)。 +\fIbuf\fP に文字列が格納される場合は、 最大で \fIbuflen\fP バイトが格納される (\fIbuflen\fP +が小さ過ぎたときには文字列は切り詰められ、 \fIerrnum\fP は不定である)。 文字列には必ず終端ヌル文字 (\(aq\e0\(aq) が含まれる。 +.SS strerror_l() +\fBstrerror_l\fP() は \fBstrerror\fP() と同様だが、 \fIerrnum\fP を \fIlocale\fP +で指定されたロケールのロケール依存のエラーメッセージにマッピングする。 \fIlocale\fP が特別なロケールオブジェクト +\fBLC_GLOBAL_LOCALE\fP の場合、もしくは \fIlocale\fP が有効なロケールオブジェクトハンドルでない場合は、 +\fBstrerror_l\fP() の動作は未定義である。 .SH 返り値 -.BR strerror () -と -.BR strerror_r () -はエラー内容を説明する -文字列を返す。エラー番号が未知の場合は "Unknown error nnn" という -メッセージを返す。 +関数 \fBstrerror\fP(), \fBstrerror_l\fP() と GNU 固有の関数 \fBstrerror_r\fP() +はエラー内容を説明する文字列を返す。 エラー番号が未知の場合は "Unknown error nnn" という メッセージを返す。 + +XSI 準拠の \fBstrerror_r\fP() 関数は成功すると 0 を返す。エラーの場合には、 +(glibc 2.13 以降では) (正の) エラー番号が返され、(バージョン 2.13 より前 +の glibc では) \-1 が返され、 \fIerrno\fP にエラーを示す値がセットされる。 -XSI 準拠の -.BR strerror_r () -関数は成功すると 0 を返す。 -エラーの場合には、 \-1 を返し、 -.I errno -にエラー内容を示す値をセットする。 +POSIX.1\-2001 と POSIX.1\-2008 では、 \fBstrerror\fP() や \fBstrerror_l\fP() が成功した場合は +\fIerrno\fP +を変更せずに元のままにしなければならないとされている。関数のどの返り値もエラーを示すために予約されていないので、エラーをチェックしたいアプリケーションは呼び出しを行う前に +\fIerrno\fP を 0 に初期化し、呼び出しの後で \fIerrno\fP をチェックすべき点に注意すること。 .SH エラー -.TP -.B EINVAL -.I errnum -の値が有効なエラー番号ではない。 -.TP -.B ERANGE +.TP +\fBEINVAL\fP +\fIerrnum\fP の値が有効なエラー番号ではない。 +.TP +\fBERANGE\fP エラーコードを説明する文字列のために、充分な領域が確保できなかった。 +.SH 属性 +.SS "マルチスレッディング (pthreads(7) 参照)" +\fBstrerror\fP() 関数はスレッドセーフではない。 +.LP +.\" FIXME Need a thread-safety statement about strerror_l() +\fBstrerror_r\fP() 関数はスレッドセーフである。 +.SH バージョン +\fBstrerror_l\fP() 関数は glibc 2.6 で初めて登場した。 .SH 準拠 -.BR strerror () -は POSIX.1-2001, C89, C99 で規定されている。 -.BR strerror_r () -は POSIX.1-2001 で規定されている。 +\fBstrerror\fP() は POSIX.1\-2001, POSIX.1\-2008, C89, C99 で規定されている。 +\fBstrerror_r\fP() は POSIX.1\-2001 と POSIX.1\-2008 で規定されている。 + +\fBstrerror_l\fP() は POSIX.1\-2008 で規定されている。 -GNU 仕様の -.BR strerror_r () -関数は非標準の拡張である。 +GNU 仕様の \fBstrerror_r\fP() 関数は非標準の拡張である。 -POSIX.1-2001 は、 -.BR strerror () -がエラーに遭遇した場合に -.I errno -をセットすることを認めているが、エラー発生時に関数の結果として -どんな値を返すべきかを規定してない。 -あるシステムでは、 -.\" 例えば Solaris 8, HP-UX 11 -エラー番号が未知の場合、 -.BR strerror () -は NULL を返す。 -他のシステムでは、 -.\" 例えば FreeBSD 5.4, Tru64 5.1B -エラー番号が未知の場合、 -.BR strerror () -は "Error nnn occurred" といった文字列を返し、 -.I errno -に -.B EINVAL -をセットする。 +.\" e.g., Solaris 8, HP-UX 11 +.\" e.g., FreeBSD 5.4, Tru64 5.1B +POSIX.1\-2001 は、 \fBstrerror\fP() がエラーに遭遇した場合に \fIerrno\fP をセッ +トすることを認めているが、エラー発生時に関数の結果として どんな値を返す +べきかを規定してない。 あるシステムでは、 エラー番号が未知の場合、 +\fBstrerror\fP() は NULL を返す。 他のシステムでは、 エラー番号が未知の場 +合、 \fBstrerror\fP() は "Error nnn occurred" といった文字列を返し、 +\fIerrno\fP に \fBEINVAL\fP をセットする。 C99 と POSIX.1\-2008 では、返り値が +NULL 以外になることが求められている。 .SH 関連項目 -.BR err (3), -.BR errno (3), -.BR error (3), -.BR perror (3), -.BR strsignal (3) +\fBerr\fP(3), \fBerrno\fP(3), \fBerror\fP(3), \fBperror\fP(3), \fBstrsignal\fP(3), +\fBlocale\fP(7) +.SH この文書について +この man ページは Linux \fIman\-pages\fP プロジェクトのリリース 3.67 の一部 +である。プロジェクトの説明とバグ報告に関する情報は +http://www.kernel.org/doc/man\-pages/ に書かれている。