1 .\" Copyright (c) Bruno Haible <haible@clisp.cons.org>
3 .\" %%%LICENSE_START(GPLv2+_DOC_ONEPARA)
4 .\" This is free documentation; you can redistribute it and/or
5 .\" modify it under the terms of the GNU General Public License as
6 .\" published by the Free Software Foundation; either version 2 of
7 .\" the License, or (at your option) any later version.
10 .\" References consulted:
11 .\" GNU glibc-2 source code and manual
12 .\" Dinkumware C library reference http://www.dinkumware.com/
13 .\" OpenGroup's Single UNIX specification http://www.UNIX-systems.org/online.html
16 .\"*******************************************************************
18 .\" This file was generated with po4a. Translate the source file.
20 .\"*******************************************************************
21 .TH WPRINTF 3 2011\-09\-17 GNU "Linux Programmer's Manual"
23 wprintf, fwprintf, swprintf, vwprintf, vfwprintf, vswprintf \- ワイド文字を
27 \fB#include <stdio.h>\fP
28 \fB#include <wchar.h>\fP
30 \fBint wprintf(const wchar_t *\fP\fIformat\fP\fB, ...);\fP
31 \fBint fwprintf(FILE *\fP\fIstream\fP\fB, const wchar_t *\fP\fIformat\fP\fB, ...);\fP
32 \fBint swprintf(wchar_t *\fP\fIwcs\fP\fB, size_t \fP\fImaxlen\fP\fB,\fP
33 \fB const wchar_t *\fP\fIformat\fP\fB, ...);\fP
35 \fBint vwprintf(const wchar_t *\fP\fIformat\fP\fB, va_list \fP\fIargs\fP\fB);\fP
36 \fBint vfwprintf(FILE *\fP\fIstream\fP\fB, const wchar_t *\fP\fIformat\fP\fB, va_list \fP\fIargs\fP\fB);\fP
37 \fBint vswprintf(wchar_t *\fP\fIwcs\fP\fB, size_t \fP\fImaxlen\fP\fB,\fP
38 \fB const wchar_t *\fP\fIformat\fP\fB, va_list \fP\fIargs\fP\fB);\fP
42 glibc 向けの機能検査マクロの要件 (\fBfeature_test_macros\fP(7) 参照):
54 _XOPEN_SOURCE\ >=\ 500 || _ISOC99_SOURCE ||
56 _ISOC95_SOURCE /* Since glibc 2.12 */ ||
58 _POSIX_C_SOURCE\ >=\ 200112L;
60 or \fIcc\ \-std=c99\fP
64 \fBwprintf\fP() ファミリーの関数は \fBprintf\fP(3) ファミリーの関数の
65 ワイド文字版である。これらはワイド文字をフォーマットして出力する。
67 \fBwprintf\fP() と \fBvwprintf\fP() 関数は \fIstdout\fP に出力を行なう。 \fIstdout\fP
68 がバイト単位入出力であってはいけない。より詳しい説明は \fBfwide\fP(3) を参照すること。
70 \fBfwprintf\fP() と \fBvfwprintf\fP() 関数は \fIstream\fP にワイド文字出力 を行なう。 \fIstream\fP
71 がバイト単位入出力であってはいけない。 より詳しい説明は \fBfwide\fP(3) を参照すること。
73 \fBswprintf\fP() と \fBvswprintf\fP() 関数はワイド文字の配列に ワイド文字出力を行なう。プログラマーは \fIwcs\fP
74 に最低でも \fImaxlen\fP 文字のワイド文字を出力できる空きがあることを保証しなければ ならない。
76 これらの関数は \fBprintf\fP(3), \fBvprintf\fP(3), \fBfprintf\fP(3), \fBvfprintf\fP(3),
77 \fBsprintf\fP(3), \fBvsprintf\fP(3) 関数に似ているが以下の 点で異っている。
80 \fIformat\fP がワイド文字列で与えられる。
83 出力がバイトではなくワイド文字で構成される。
86 \fBswprintf\fP() と \fBvswprintf\fP() は \fImaxlen\fP 引き数を取るが、 \fBsprintf\fP() と
87 \fBvsprintf\fP() は取らない (\fBsnprintf\fP() と \fBvsnprintf\fP() は \fImaxlen\fP 引き数を取るが
88 これらの関数が Linux では、バッファーが溢れた場合でも \-1 を返さない)。
90 \fBc\fP と \fBs\fP 変換文字の扱いが異っている:
93 もし \fBl\fP 修飾子が存在しない場合は \fIint\fP 引き数は \fBbtowc\fP(3)
94 関数によってワイド文字に変換される。そして結果のワイド文字が出力される。 \fBl\fP 修飾子が存在する場合は \fIwint_t\fP
98 もし \fBl\fP 修飾子が存在しない場合、 \fIconst\ char\ *\fP 引き数は初期状態より始まるマルチバイト文字列を含んだ char
99 型の配列へのポインタ(文字列へのポインタ)とみなされる。 配列の文字は(最初のバイト前に初期状態で変換を開始し、それぞれの文字を
100 \fBmbrtowc\fP(3) 関数によって)ワイド文字へと変換される。結果のワイド文字は終端の
101 ナルワイド文字の手前までが書き込まれる。精度(precision)が指定された 場合、指定された数字を超えるワイド文字は書き込まれない。精度は
102 書き込まれる \fIバイト\fP 数や \fI画面上の位置\fP ではなく \fIワイド文字\fP の数を指定することに注意すること。
103 精度がない場合には配列の終端にナル文字を含む必要がある。 精度を指定する場合には、配列の最後に到着する前に変換されたワイド文字の
104 数がそれに到達するよう、精度は十分に小さな数でなければならない。 もし \fBl\fP 修飾子が存在する場合、 \fIconst\ wchar_t\ *\fP
105 引き数はワイド文字の配列へのポインタとみなされる。 配列のワイド文字列は終端のナルワイド文字の手間まで出力される。
106 もし精度が指定された場合には指定された精度以上の文字は出力されない。 精度を指定しない場合には終端のナルワイド文字を含む必要がある。
107 精度を指定する場合にはそれはワイド文字の配列の大きさよりも小さくな ければならない。
109 これらの関数は書き込まれたワイド文字の文字数を返す。 \fBswprintf\fP() と \fBvswprintf\fP() 関数の場合は
110 終端のナルワイド文字は含まない。エラーが起こった場合は \-1 を返す。
114 \fBwprintf\fP() 等の動作は現在のロケールの \fBLC_CTYPE\fP カテゴリに依存している。
116 \fIformat\fP 文字列が ASCII 以外のワイド文字を含んでいる場合、 実行時のロケールの \fBLC_CTYPE\fP カテゴリがコンパイル時の
117 \fBLC_CTYPE\fP カテゴリと 一致している場合にのみプログラムは正常に動作する。これは \fIwchar_t\fP
118 の表現がロケールやプラットホームに依存していることに原因がある。 (glibc ではワイド文字として Unicode (ISO\-10646)
119 のコードポイントを 使用している。他のプラットホームではそうではない。同様に ISO C99 の \eunnnn
120 形式の汎用文字名称はこの問題を解決しない。) このため国際化されたプログラムでは \fIformat\fP 文字列を ASCII ワイド
121 文字のみにするか、実行時に国際化された方法で構成する必要がある (例えば \fBgettext\fP() と \fBiconv\fP() や
122 \fBmbstowcs\fP() を組み合わて使用する)。
125 \fBfprintf\fP(3), \fBfputwc\fP(3), \fBfwide\fP(3), \fBprintf\fP(3), \fBsnprintf\fP(3)
127 この man ページは Linux \fIman\-pages\fP プロジェクトのリリース 3.51 の一部
128 である。プロジェクトの説明とバグ報告に関する情報は
129 http://www.kernel.org/doc/man\-pages/ に書かれている。