OSDN Git Service

(split) LDP: Update draft and release (from the previous commit)
[linuxjm/LDP_man-pages.git] / draft / man3 / strerror.3
index 94c8255..a1e5fe7 100644 (file)
@@ -1,5 +1,5 @@
 .\" Copyright (C) 1993 David Metcalfe (david@prism.demon.co.uk)
-.\" and Copyright (C) 2005, Michael Kerrisk <mtk.manpages@gmail.com>
+.\" and Copyright (C) 2005, 2014 Michael Kerrisk <mtk.manpages@gmail.com>
 .\"
 .\" %%%LICENSE_START(VERBATIM)
 .\" Permission is granted to make and distribute verbatim copies of this
@@ -51,9 +51,9 @@
 .\" Updated 2012-05-02, Akihiro MOTOKI <amotoki@gmail.com>
 .\" Updated 2013-07-22, Akihiro MOTOKI <amotoki@gmail.com>
 .\"
-.TH STRERROR 3 2013\-06\-21 "" "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
 \fB#include <string.h>\fP
@@ -65,26 +65,32 @@ strerror, strerror_r \- エラー番号を説明する文字列を返す。
 .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 向けの機能検査マクロの要件 (\fBfeature_test_macros\fP(7)  参照):
 .in
+.ad l
 .sp
-次の場合には XSI 準拠のバージョンの \fBstrerror_r\fP()  が提供される:
+\fBstrerror_r\fP():
+.RS 4
+次の場合には XSI 準拠のバージョンが提供される:
 .br
 (_POSIX_C_SOURCE\ >=\ 200112L || _XOPEN_SOURCE\ >=\ 600) && !\ _GNU_SOURCE
 .br
 それ以外の場合、GNU バージョンが提供される。
+.RE
+.ad
 .SH 説明
-\fBstrerror\fP() 関数は、引き数 \fIerrnum\fP で渡されたエラーコードについての
-説明が入った文字列へのポインタを返す。 可能であるならば、適切な言語を選
-択するために、 現在のロケールの \fBLC_MESSAGES\fP を使う。(例えば、
-\fIerrnum\fP が \fBEINVAL\fP の場合、説明として"Invalid argument" が返され
-る。) この文字列は、アプリケーションで変更してはならないが、 これ以降に
-行われる \fBstrerror\fP() の呼び出しで 変更されても構わない。この文字列を
-変更するライブラリ関数はない (\fBperror\fP(3) も含まれる)。
-
+.\"
+\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 までは
@@ -98,23 +104,28 @@ XSI 準拠のバージョンの \fBstrerror_r\fP() がデフォルトで提供
 移植性が必要なアプリケーションでは、 XSI 準拠の \fBstrerror_r\fP()  を使う方がよい。 この関数は、ユーザーから提供される長さ
 \fIbuflen\fP のバッファ \fIbuf\fP にエラー文字列を返す。
 
+.\"
 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()  is like \fBstrerror\fP(), but maps \fIerrnum\fP to a
+locale\-dependent error message in the locale specified by \fIlocale\fP.  The
+behavior of \fBstrerror_l\fP()  is undefined if \fIlocale\fP is the special locale
+object \fBLC_GLOBAL_LOCALE\fP or is not a valid locale object handle.
 .SH 返り値
-\fBstrerror\fP()  と \fBstrerror_r\fP()  はエラー内容を説明する 文字列を返す。エラー番号が未知の場合は "Unknown
-error nnn" という メッセージを返す。
-
-POSIX.1\-2001 と POSIX.1\-2008 では、 \fBstrerror\fP() が成功した場合は
-\fIerrno\fP を変更せずに元のままにしなければならないとされている。関数のど
-の返り値もエラーを示すために予約されていないので、エラーをチェックした
-いアプリケーションは呼び出しを行う前に \fIerrno\fP を 0 に初期化し、呼び出
-しの後で \fIerrno\fP をチェックすべき点に注意すること。
+関数 \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 にエラーを示す値がセットされる。
+
+POSIX.1\-2001 と POSIX.1\-2008 では、 \fBstrerror\fP() や \fBstrerror_l\fP() が成功した場合は
+\fIerrno\fP
+を変更せずに元のままにしなければならないとされている。関数のどの返り値もエラーを示すために予約されていないので、エラーをチェックしたいアプリケーションは呼び出しを行う前に
+\fIerrno\fP を 0 に初期化し、呼び出しの後で \fIerrno\fP をチェックすべき点に注意すること。
 .SH エラー
 .TP 
 \fBEINVAL\fP
@@ -126,10 +137,15 @@ XSI 準拠の \fBstrerror_r\fP() 関数は成功すると 0 を返す。エラ
 .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 準拠
-\fBstrerror\fP()  は POSIX.1\-2001, C89, C99 で規定されている。 \fBstrerror_r\fP()  は
-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 仕様の \fBstrerror_r\fP()  関数は非標準の拡張である。
 
@@ -143,8 +159,9 @@ POSIX.1\-2001 は、 \fBstrerror\fP() がエラーに遭遇した場合に \fIer
 \fIerrno\fP に \fBEINVAL\fP をセットする。 C99 と POSIX.1\-2008 では、返り値が
 NULL 以外になることが求められている。
 .SH 関連項目
-\fBerr\fP(3), \fBerrno\fP(3), \fBerror\fP(3), \fBperror\fP(3), \fBstrsignal\fP(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.54 の一部
+この man ページは Linux \fIman\-pages\fP プロジェクトのリリース 3.63 の一部
 である。プロジェクトの説明とバグ報告に関する情報は
 http://www.kernel.org/doc/man\-pages/ に書かれている。