X-Git-Url: http://git.osdn.net/view?a=blobdiff_plain;f=draft%2Fman3%2Fprintf.3;fp=draft%2Fman3%2Fprintf.3;h=07daa01869dbe86c3a183ab4f65801146d5ac08f;hb=03f6f242a99012f41adeb2303810e45f08a83d09;hp=1cbd26dcc0b9d1bf4e0a73c6889b022ffade9bda;hpb=42af42c572b2ca58dab2f35558ddcbe6ec535549;p=linuxjm%2FLDP_man-pages.git diff --git a/draft/man3/printf.3 b/draft/man3/printf.3 index 1cbd26dc..07daa018 100644 --- a/draft/man3/printf.3 +++ b/draft/man3/printf.3 @@ -113,7 +113,7 @@ _POSIX_C_SOURCE\ >=\ 200112L; C99 と POSIX.1\-2001 では、 \fBsprintf\fP(), \fBsnprintf\fP(), \fBvsprintf\fP(), \fBvsnprintf\fP() の呼び出しで、範囲が重複するオブジェクト間でコピーが発生する場合の 結果は不定であると規定されている -(例えば、出力先の文字列と入力された 引き数の一つが同じバッファを参照している場合などである)。 「注意」の節を参照。 +(例えば、出力先の文字列と入力された 引き数の一つが同じバッファーを参照している場合などである)。 「注意」の節を参照。 .SS "Return Values" 成功時には、上記の関数は書き込まれた文字数を返す (文字列の最後を示すために使用するヌルバイトは数に含まれない)。 @@ -228,19 +228,20 @@ glibc 2.2 では、さらに一つフラグ文字が追加されている。 .TP \fBhh\fP 整数変換に対応する引き数が \fIsigned char\fP か \fIunsigned char\fP で、 \fBn\fP 変換に対応する引き数が \fIsigned -char\fP へのポインタであることを示す。 +char\fP へのポインターであることを示す。 .TP \fBh\fP 整数変換に対応する引き数が \fIshort int\fP か \fIunsigned short int\fP で、 \fBn\fP 変換に対応する引き数が -\fIshort int\fP へのポインタであることを示す。 +\fIshort int\fP へのポインターであることを示す。 .TP \fBl\fP 各変換に対応する引き数が、 整数変換では \fIlong int\fPか \fIunsigned long int\fP、 \fBn\fP 変換では \fIlong -long int\fP へのポインタ、 \fBc\fP 変換では \fIwint_t\fP、 \fBs\fP 変換では \fIwchar_t\fP へのポインタであることを示す。 +long int\fP へのポインター、 \fBc\fP 変換では \fIwint_t\fP、 \fBs\fP 変換では \fIwchar_t\fP +へのポインターであることを示す。 .TP \fBll\fP (エルエル) 整数変換に対応する引き数が \fIlong long int\fP か \fIunsigned long long int\fP で、 \fBn\fP -変換に対応する引き数が \fIlong int\fP へのポインタであることを示す。 +変換に対応する引き数が \fIlong int\fP へのポインターであることを示す。 .TP \fBL\fP .\" .TP @@ -252,7 +253,7 @@ long int\fP へのポインタ、 \fBc\fP 変換では \fIwint_t\fP、 \fBs\fP .TP \fBj\fP 整数変換に対応する引き数が \fIintmax_t\fP か \fIuintmax_t\fP で、 \fBn\fP 変換に対応する引き数が \fIintmax_t\fP -へのポインタであることを示す。 +へのポインターであることを示す。 .TP \fBz\fP .\" (Linux libc5 has @@ -260,10 +261,10 @@ long int\fP へのポインタ、 \fBc\fP 変換では \fIwint_t\fP、 \fBs\fP .\" with this meaning. .\" Don't use it.) 整数変換に対応する引き数が \fIsize_t\fP か \fIssize_t\fP で、 \fBn\fP 変換に対応する引き数が \fIsize_t\fP -へのポインタであることを示す。 +へのポインターであることを示す。 .TP \fBt\fP -整数変換に対応する引き数が \fIptrdiff_t\fP で、 \fBn\fP 変換に対応する引き数が \fIptrdiff_t\fP へのポインタであることを示す。 +整数変換に対応する引き数が \fIptrdiff_t\fP で、 \fBn\fP 変換に対応する引き数が \fIptrdiff_t\fP へのポインターであることを示す。 .PP SUSv3 では上記のすべてが規定されている。 SUSv2 で規定されていたのは、 長さ修飾子 \fBh\fP (\fBhd\fP, \fBhi\fP, \fBho\fP, \fBhx\fP, \fBhX\fP, \fBhn\fP), \fBl\fP (\fBld\fP, \fBli\fP, \fBlo\fP, \fBlx\fP, \fBlX\fP, \fBln\fP, \fBlc\fP, @@ -324,12 +325,12 @@ SUSv3 では上記のすべてが規定されている。 SUSv2 で規定され 関数を初期シフト状態で呼び出してマルチバイト文字列に変換し、 変換されたマルチバイト文字列を出力する。 .TP \fBs\fP -\fBl\fP 修飾子がない場合、 引き数は \fIconst char\ *\fP 型で文字型の配列へのポインタ (文字列へのポインタ) であることが +\fBl\fP 修飾子がない場合、 引き数は \fIconst char\ *\fP 型で文字型の配列へのポインター (文字列へのポインター) であることが 期待されている。配列中の文字は、終端の ヌルバイト (\(aq\e0\(aq) が出てくるまで出力される (終端文字は出力されない)。 精度が指定されていると、指定された字数以上は出力されない。 精度が指定された場合には、終端バイトが存在する必要はない。 精度が指定されていなかったり、精度の値が配列の大きさより大きい場合には、 配列は終端のヌルバイトを含んでいなければならない。 -\fBl\fP 修飾子が指定されている場合、 引き数は \fIconst wchar_t\ *\fP 型でワイド文字の配列へのポインタであることが期待されている。 +\fBl\fP 修飾子が指定されている場合、 引き数は \fIconst wchar_t\ *\fP 型でワイド文字の配列へのポインターであることが期待されている。 配列中のワイド文字は (1文字毎に \fBwcrtomb\fP(3) を呼び出して) マルチバイト文字に変換される (最初のワイド文字の変換の前に \fBwcrtomb\fP() のシフト状態を初期状態に戻してから変換は行われる)。 マルチバイト文字への変換は、文字列を終端するヌルワイド文字が 出てくるまで行われ、終端ヌルワイド文字も含めて変換される。 結果のマルチバイト文字列は、終端のヌルバイトが出てくるまで 出力される @@ -345,7 +346,7 @@ SUSv3 では上記のすべてが規定されている。 SUSv2 で規定され (C99, C11 にはないが SUSv2, SUSv3, SUSv4 にはある) \fBls\fP と同じ。使ってはならない。 .TP \fBp\fP -\fIvoid\ *\fP ポインタ引き数を (\fB%#x\fP や \fB%#lx\fP のような) 16 進数で出力する。 +\fIvoid\ *\fP ポインター引き数を (\fB%#x\fP や \fB%#lx\fP のような) 16 進数で出力する。 .TP \fBn\fP これまでに書き込まれた文字数が対応する引き数が指す整数に格納される。 この引き数は \fIint\ *\fP @@ -391,7 +392,7 @@ SUSv3 では上記のすべてが規定されている。 SUSv2 で規定され .\" glibc 2.0 adds conversion characters \fBC\fP and \fBS\fP. \fBsnprintf\fP() の返り値を見ると、 SUSv2 と C99 標準は互いに矛盾している。 SUSv2 では、 \fBsnprintf\fP() が \fIsize\fP=0 で呼び出された場合、 1 未満の値を何か返り値とするように規定している。 一方 C99 では、このような場合 \fIstr\fP を -NULL とし、返り値として (通常通り) 出力バッファが十分な大きさが あった場合に出力されるであろう文字数を返す。 SUSv3 やそれ以降では +NULL とし、返り値として (通常通り) 出力バッファーが十分な大きさが あった場合に出力されるであろう文字数を返す。 SUSv3 やそれ以降では C99 の \fBsnprintf\fP() の規定にあわせたものとなっている。 .PP glibc 2.1 では、長さ修飾子 \fBhh\fP, \fBj\fP, \fBt\fP, \fBz\fP と変換文字 \fBa\fP, \fBA\fP が追加された。 @@ -404,7 +405,7 @@ glibc 2.2 では、 C99 で規定された意味での変換文字 \fBF\fP と .\" http://sourceware.org/bugzilla/show_bug.cgi?id=7075 しかしながら、標準規格では、 \fBsprintf\fP(), \fBsnprintf\fP(), \fBvsprintf\fP(), \fBvsnprintf\fP() -の呼び出しにおいて、コピー元とコピー先のバッファが重なっていた場合の 結果は不定である、と明記されている。 使用する \fBgcc\fP(1) +の呼び出しにおいて、コピー元とコピー先のバッファーが重なっていた場合の 結果は不定である、と明記されている。 使用する \fBgcc\fP(1) のバージョンや指定したコンパイラのオプション次第では、 上記のような呼び出しで、期待した結果が得られ「ない」ことがある。 .\" .SH HISTORY @@ -466,7 +467,7 @@ glibc の \fBsnprintf\fP() と \fBvsnprintf\fP() の実装は、バージョ .\" caused memory leaks. \fBprintf(\fP\fIfoo\fP\fB);\fP のようなコードはしばしばバグを引き起こす。 なぜなら \fIfoo\fP に % 文字が含まれてるかもしれないからである。 \fIfoo\fP が信頼できないユーザー入力から作られている場合には、 その中に \fB%n\fP -が含まれていることがあり、 \fBprintf\fP() 呼び出し時にメモリへの書き込みが起こり、 セキュリティーホールを作ることになるかもしれない。 +が含まれていることがあり、 \fBprintf\fP() 呼び出し時にメモリーへの書き込みが起こり、 セキュリティーホールを作ることになるかもしれない。 .SH 例 \fIPi\fP を 5 桁で出力する。 .in +4n @@ -479,7 +480,7 @@ fprintf(stdout, "pi = %.5f\en", 4 * atan(1.0)); .in .PP 日付と時間を "Sunday, July 3, 10:02" の形式で出力する。 (\fIweekday\fP と \fImonth\fP -は文字列へのポインタである) +は文字列へのポインターである) .in +4n .nf