OSDN Git Service

Update release for LDP 3.67
[linuxjm/LDP_man-pages.git] / release / man3 / strerror.3
index 402101b..ca38186 100644 (file)
@@ -1,6 +1,7 @@
 .\" 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
 .\" 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
 .\" 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 <yoshino@civil.jcn.nihon-u.ac.jp>
 .\" Updated & Modified 2001-11-03, Yuichi SATO <ysato@h4.dion.ne.jp>
 .\" Updated 2005-12-26, Akihiro MOTOKI <amotoki@dd.iij4u.or.jp>
 .\" Updated 2007-09-06, Akihiro MOTOKI <amotoki@dd.iij4u.or.jp>, LDP v2.64
+.\" Updated 2012-05-02, Akihiro MOTOKI <amotoki@gmail.com>
+.\" Updated 2013-07-22, Akihiro MOTOKI <amotoki@gmail.com>
 .\"
-.\"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 <string.h>
+\fB#include <string.h>\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 ()
\81¨
-.BR strerror_r ()
-はエラー内容を説明する
-文字列を返す。エラー番号が未知の場合は "Unknown error nnn" という
\83¡ã\83\83ã\82»ã\83¼ã\82¸ã\82\92è¿\94ã\81\99
+関数 \fBstrerror\fP(), \fBstrerror_l\fP() と GNU 固有の関数 \fBstrerror_r\fP()
\81¯ã\82¨ã\83©ã\83¼å\86\85容ã\82\92説æ\98\8eã\81\99ã\82\8bæ\96\87å­\97å\88\97ã\82\92è¿\94ã\81\99ã\80\82 ã\82¨ã\83©ã\83¼ç\95ªå\8f·ã\81\8cæ\9cªç\9f¥ã\81®å ´å\90\88ã\81¯ "Unknown error nnn" ã\81¨ã\81\84ã\81\86 ã\83¡ã\83\83ã\82»ã\83¼ã\82¸ã\82\92è¿\94ã\81\99ã\80\82
+
+XSI 準拠の \fBstrerror_r\fP() 関数は成功すると 0 を返す。エラーの場合には、
+(glibc 2.13 以降では) (正の) エラー番号が返され、(バージョン 2.13 より前
\81® glibc ã\81§ã\81¯) \-1 ã\81\8cè¿\94ã\81\95ã\82\8cã\80\81 \fIerrno\fP ã\81«ã\82¨ã\83©ã\83¼ã\82\92示ã\81\99å\80¤ã\81\8cã\82»ã\83\83ã\83\88ã\81\95ã\82\8cã\82\8b
 
-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/ に書かれている。