OSDN Git Service

(split) DP: release pages (catch up to 3.50).
[linuxjm/LDP_man-pages.git] / release / man3 / scanf.3
index cd41cf2..2aae999 100644 (file)
@@ -5,6 +5,7 @@
 .\" Chris Torek and the American National Standards Committee X3,
 .\" on Information Processing Systems.
 .\"
 .\" Chris Torek and the American National Standards Committee X3,
 .\" on Information Processing Systems.
 .\"
+.\" %%%LICENSE_START(BSD_4_CLAUSE_UCB)
 .\" Redistribution and use in source and binary forms, with or without
 .\" modification, are permitted provided that the following conditions
 .\" are met:
 .\" Redistribution and use in source and binary forms, with or without
 .\" modification, are permitted provided that the following conditions
 .\" are met:
@@ -32,6 +33,7 @@
 .\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
 .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
 .\" SUCH DAMAGE.
 .\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
 .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
 .\" SUCH DAMAGE.
+.\" %%%LICENSE_END
 .\"
 .\"     @(#)scanf.3    6.14 (Berkeley) 1/8/93
 .\"
 .\"
 .\"     @(#)scanf.3    6.14 (Berkeley) 1/8/93
 .\"
@@ -52,7 +54,7 @@
 .\" This file was generated with po4a. Translate the source file.
 .\"
 .\"*******************************************************************
 .\" This file was generated with po4a. Translate the source file.
 .\"
 .\"*******************************************************************
-.TH SCANF 3 2011\-09\-28 GNU "Linux Programmer's Manual"
+.TH SCANF 3 2013\-01\-30 GNU "Linux Programmer's Manual"
 .SH 名前
 scanf, fscanf, sscanf, vscanf, vsscanf, vfscanf \- 書式付き入力変換
 .SH 書式
 .SH 名前
 scanf, fscanf, sscanf, vscanf, vsscanf, vfscanf \- 書式付き入力変換
 .SH 書式
@@ -126,12 +128,14 @@ failure)\fP と \fI「一致の失敗」 (matching failure)\fP のいずれか
 \fIpointer\fP 引き数は必要なく、 \fBscanf\fP()  が返す代入が成功した数にこの指定は含まれない。
 .TP 
 \(bu
 \fIpointer\fP 引き数は必要なく、 \fBscanf\fP()  が返す代入が成功した数にこの指定は含まれない。
 .TP 
 \(bu
-文字 \(aqa\(aq (省略可能)。これは文字列変換とともに使用され、これを使うと
-呼び出し元が入力を保持する対応するバッファを確保する必要がなくなる。 代わりに \fBscanf\fP()
-が必要な大きさのバッファを確保し、このバッファのアドレスを 対応する \fIpointer\fP 引き数に代入する。 \fIpointer\fP 引き数は
-\fIchar *\fP 型の変数へのポインタでなければならない (変数自体は呼び出し前に初期化されている必要はない)。
-呼び出し元は、不要になった時点で、このバッファを \fBfree\fP(3)  すべきである。この機能は GNU による拡張である。 C99 は
-\(aqa\(aq 文字を変換指定として使用している (こちらも GNU の実装と同じように使用することができる)。
+An optional \(aqm\(aq character.  This is used with string conversions
+(\fI%s\fP, \fI%c\fP, \fI%[\fP), and relieves the caller of the need to allocate a
+corresponding buffer to hold the input: instead, \fBscanf\fP()  allocates a
+buffer of sufficient size, and assigns the address of this buffer to the
+corresponding \fIpointer\fP argument, which should be a pointer to a \fIchar *\fP
+variable (this variable does not need to be initialized before the call).
+The caller should subsequently \fBfree\fP(3)  this buffer when it is no longer
+required.
 .TP 
 \(bu
 \fI「最大フィールド幅」\fP を指定する 10進数 (省略可能)。 この最大値に達するか、一致しない文字が見つかるか、のどちらかに
 .TP 
 \(bu
 \fI「最大フィールド幅」\fP を指定する 10進数 (省略可能)。 この最大値に達するか、一致しない文字が見つかるか、のどちらかに
@@ -309,11 +313,39 @@ failure)\fP と \fI「一致の失敗」 (matching failure)\fP のいずれか
 これらの関数の Linux 版は \fIGNU\fP \fIlibio\fP ライブラリーを元にしている。 より簡潔な説明には \fIGNU\fP \fIlibc
 (glibc\-1.08)\fP の \fIinfo\fP 文書に目を通すこと。
 .SH 注意
 これらの関数の Linux 版は \fIGNU\fP \fIlibio\fP ライブラリーを元にしている。 より簡潔な説明には \fIGNU\fP \fIlibc
 (glibc\-1.08)\fP の \fIinfo\fP 文書に目を通すこと。
 .SH 注意
-.\" This feature seems to be present at least as far back as glibc 2.0.
-GNU C ライブラリ (glibc) では非標準のオプションをサポートしており、 このオプションを使うと変換指定子 \fB%s\fP や
-\fB%a[\fP\fIrange\fP\fB]\fP への入力文字列に対して十分な大きさの文字列をライブラリが動的に確保する ようになる。
-この機能を使用するには、長さ修飾子として \fBa\fP を指定する (したがって、全体としては \fB%as\fP や \fB%a[\fP\fIrange\fP\fB]\fP
-となる)。 以下の例にあるように、呼び出し側は返された文字列を \fBfree\fP(3)  しなければならない。
+The GNU C library supported the dynamic allocation conversion specifier (as
+a nonstandard extension) via the \fBa\fP character.  This feature seems to be
+present at least as far back as glibc 2.0.
+.PP
+It is not available if the program is compiled with \fIgcc \-std=c99\fP or \fIgcc
+\-D_ISOC99_SOURCE\fP (unless \fB_GNU_SOURCE\fP is also specified), in which case
+the \fBa\fP is interpreted as a specifier for floating\-point numbers (see
+above).
+
+バージョン 2.7 以降では、glibc は \fBa\fP 修飾子と同じ目的で \fBm\fP 修飾子も提供している。 \fBm\fP 修飾子は以下の利点がある。
+.IP * 2
+\fB%c\fP 変換指定子にも適用できる (例えば \fB%3mc\fP)。
+.IP *
+浮動小数点変換指定子としての \fB%a\fP との紛らわしさが避けられる (また \fIgcc \-std=c99\fP などの影響も避けられる)。
+.IP *
+It is specified in the POSIX.1\-2008 standard.
+.SH バグ
+全ての関数は、完全に C89 に準拠している。しかし 追加で \fBq\fP と \fBa\fP 指定子が提供されており、同様に \fBL\fP と \fBl\fP
+指定子の付加的な振る舞いもある。後者は、 C89 で定義された指定子の振る舞いを変更するものなので、 バグとみなされるかもしれない。
+.PP
+ANSI C で定義された型修飾子と変換指定子の組み合わせの中には 意味を
+なさないものがある (例えば、 \fB%Ld\fP)。 これらが指定された場合、
+Linux 上でははっきりと定義された振る舞いをするかもしれないが、
+他のアーキテクチャでも同様になっているとは限らない。
+それゆえに、ほとんどの場合、 ANSI C で定義されていない修飾子を使用した
+方が良い。すなわち、 \fBd\fP, \fBi\fP, \fBo\fP, \fBu\fP, \fBx\fP, \fBX\fP 変換や \fBll\fP
+と組み合わせる場合には、 \fBL\fP の代わりに \fBq\fP を使用した方が良い。
+.PP
+\fBq\fP の使用方法は 4.4BSD と同じではない。 4.4BSD では \fBq\fP は \fBL\fP と同等に浮動小数の変換に使用される。
+.SH 例
+To use the dynamic allocation conversion specifier, specify \fBm\fP as a length
+modifier (thus \fB%ms\fP or \fB%m[\fP\fIrange\fP\fB]\fP).  The caller must \fBfree\fP(3)
+the returned string, as in the following example:
 .in +4n
 .nf
 
 .in +4n
 .nf
 
@@ -321,7 +353,7 @@ char *p;
 int n;
 
 errno = 0;
 int n;
 
 errno = 0;
-n = scanf("%a[a\-z]", &p);
+n = scanf("%m[a\-z]", &p);
 if (n == 1) {
     printf("read: %s\en", p);
     free(p);
 if (n == 1) {
     printf("read: %s\en", p);
     free(p);
@@ -334,27 +366,10 @@ if (n == 1) {
 .in
 .PP
 上記の例にあるように、 \fBscanf\fP()  が文字列の読み込みに成功した場合にだけ、 \fBfree\fP(3)  を呼び出す必要がある。
 .in
 .PP
 上記の例にあるように、 \fBscanf\fP()  が文字列の読み込みに成功した場合にだけ、 \fBfree\fP(3)  を呼び出す必要がある。
-.PP
-\fIgcc \-std=c99\fP や \fIgcc \-D_ISOC99_SOURCE\fP でコンパイルしたプログラムでは (\fB_GNU_SOURCE\fP
-も同時に指定していない場合)、 \fBa\fP 修飾子は利用できない。 上記の場合、 \fBa\fP は (上述の通り) 浮動小数点数を示す変換指定子と解釈される。
-
-バージョン 2.7 以降では、glibc は \fBa\fP 修飾子と同じ目的で \fBm\fP 修飾子も提供している。 \fBm\fP 修飾子は以下の利点がある。
-.IP * 2
-\fB%c\fP 変換指定子にも適用できる (例えば \fB%3mc\fP)。
-.IP *
-浮動小数点変換指定子としての \fB%a\fP との紛らわしさが避けられる (また \fIgcc \-std=c99\fP などの影響も避けられる)。
-.IP *
-POSIX.1 標準の次の改訂版で規定される。
-.SH バグ
-全ての関数は、完全に C89 に準拠している。しかし 追加で \fBq\fP と \fBa\fP 指定子が提供されており、同様に \fBL\fP と \fBl\fP
-指定子の付加的な振る舞いもある。後者は、 C89 で定義された指定子の振る舞いを変更するものなので、 バグとみなされるかもしれない。
-.PP
-ANSI C で定義された型修飾子と変換指定子の組み合わせの中には 意味をなさないものがある (例えば、 \fB%Ld\fP)。 これらが指定された場合、
-Linux 上でははっきりと定義された振る舞いをするかもしれないが、 他のアーキテクチャでも同様になっているとは限らない。 それゆえに、ほとんどの場合、
-ANSI C で定義されていない修飾子を使用した方が良い。 すなわち、 \fBd\fP, \fBi\fP, \fBo\fP, \fBu\fP, \fBx\fP, \fBX\fP 変換や
-\fBll\fP と組み合わせる場合には、 \fBL\fP の代わりに \fBq\fP を使用した方が良い。
-.PP
-\fBq\fP の使用方法は 4.4BSD と同じではない。 4.4BSD では \fBq\fP は \fBL\fP と同等に浮動小数の変換に使用される。
 .SH 関連項目
 \fBgetc\fP(3), \fBprintf\fP(3)  \fBsetlocale\fP(3), \fBstrtod\fP(3), \fBstrtol\fP(3),
 \fBstrtoul\fP(3),
 .SH 関連項目
 \fBgetc\fP(3), \fBprintf\fP(3)  \fBsetlocale\fP(3), \fBstrtod\fP(3), \fBstrtol\fP(3),
 \fBstrtoul\fP(3),
+.SH この文書について
+この man ページは Linux \fIman\-pages\fP プロジェクトのリリース 3.50 の一部
+である。プロジェクトの説明とバグ報告に関する情報は
+http://www.kernel.org/doc/man\-pages/ に書かれている。