Available in

(3) (3)/de (3)/es (3)/fr (3)/ja (3posix)

TOC

WPRINTF(3)                 Linux Programmer's Manual                WPRINTF(3)



名樵前

       wprintf,   fwprintf,   swprintf,   vwprintf,   vfwprintf,  vswprintf  -
       ワイド文字を フォーマットして出力する

書饉式

       #include <stdio.h>
       #include <wchar.h>

       int wprintf(const wchar_t *format, ...);
       int fwprintf(FILE *stream, const wchar_t *format, ...);
       int swprintf(wchar_t *wcs, size_t maxlen,
                    const wchar_t *format, ...);

       int vwprintf(const wchar_t *format, va_list args);
       int vfwprintf(FILE *stream, const wchar_t *format, va_list args);
       int vswprintf(wchar_t *wcs, size_t maxlen,
                     const wchar_t *format, va_list args);

   glibc 向けの機能検査マクロの要件 (feature_test_macros(7) 参照):

       上気料瓦討隆愎: _XOPEN_SOURCE >= 500 || _ISOC99_SOURCE; or cc -std=c99

説睫明

       wprintf()      ファミリーの関数は      printf(3)     ファミリーの関数の
       ワイド文字版である。これらはワイド文字をフォーマットして出力する。

       wprintf()  と  vwprintf()   関数は   stdout   に出力を行なう。   stdout
       がバイト単位入出力であってはいけない。より詳しい説明は         fwide(3)
       を参照すること。

       fwprintf() と vfwprintf()  関数は  stream  にワイド文字出力  を行なう。
       stream がバイト単位入出力であってはいけない。 より詳しい説明は fwide(3)
       を参照すること。

       swprintf()        と        vswprintf()        関数はワイド文字の配列に
       ワイド文字出力を行なう。プログラマーは     wcs     に最低でも    maxlen
       文字のワイド文字を出力でい覿いあることを保証しなければ ならない。

       これらの関数は   printf(3),   vprintf(3),   fprintf(3),    vfprintf(3),
       sprintf(3), vsprintf(3) 関数に似ているが以下の 点で異っている。

       +>o      format がワイド文字列で与えられる。

       +>o      出力がバイトではなくワイド文字で構成される。

       +>o      swprintf() と vswprintf() は maxlen 引た瑤鮗茲襪、 sprintf() と
              vsprintf() は取らない (snprintf() と vsnprintf() は maxlen  引-
              数を取るが これらの関数が Linux では、バッファーが溢れた場合でも
              -1 を返さない)。

       cs 変換文字の扱いが異っている:

       c      もし   l   修飾子が存在しない場合は   int    引た瑤    btowc(3)
              関数によってワイド文字に変換される。そして結果のワイド文字が出力される。
              l 修飾子が存在する場合は wint_t (ワイド文字)引た瑤出力される。

       s      もし    l     修飾子が存在しない場合、     const char *     引-
              数は初期状態より始まるマルチバイト文字列を含んだ            char
              型の配列へのポインター(文字列へのポインター)とみなされる。
              配列の文字は(最初のバイト前に初期状態で変換を開始し、それぞれの文字を
              mbrtowc(3)
              関数によって)ワイド文字へと変換される。結果のワイド文字は終端の
              ナルワイド文字の手前までが書-
              込まれる。精度(precision)が指定された
              場合、指定された数字を超えるワイド文字は書すまれない。精度は
              書すまれる      数や     ではなく  
              の数を指定することに注意すること。
              精度がない場合には配列の終端にナル文字を含む必要がある。
              精度を指定する場合には、配列の最後に到着する前に変換されたワイド文字の
              数がそれに到達するよう、精度は十分に小さな数でなければならない。
              もし    l    修飾子が存在する場合、     const wchar_t *     引-
              数はワイド文字の配列へのポインターとみなされる。
              配列のワイド文字列は終端のナルワイド文字の手間まで出力される。
              もし精度が指定された場合には指定された精度以上の文字は出力されない。
              精度を指定しない場合には終端のナルワイド文字を含む必要がある。
              精度を指定する場合にはそれはワイド文字の配列の大-
              さよりも小さくな ければならない。

返屬り蠱値

       これらの関数は書すまれたワイド文字の文字数を返す。 swprintf() と  vsw-
       printf()                                                   関数の場合は
       終端のナルワイド文字は含まない。エラーが起こった場合は -1 を返す。

準犁拠

       C99.

注躇意

       wprintf() 等の動作は現在のロケールの LC_CTYPE カテゴリに依存している。

       format      文字列が      ASCII      以外のワイド文字を含んでいる場合、
       実行時のロケールの     LC_CTYPE    カテゴリがコンパイル時の    LC_CTYPE
       カテゴリと     一致している場合にのみプログラムは正常に動作する。これは
       wchar_t
       の表現がロケールやプラットホームに依存していることに原因がある。 (glibc
       ではワイド文字として     Unicode     (ISO-10646)     のコードポイントを
       使用している。他のプラットホームではそうではない。同様に  ISO  C99   の
       \unnnn                      形式の汎用文字名称はこの問題を解決しない。)
       このため国際化されたプログラムでは   format   文字列を   ASCII   ワイド
       文字のみにするか、実行時に国際化された方法で構成する必要がある  (例えば
       gettext() と iconv() や mbstowcs() を組み合わて使用する)。

関慙連項猝目

       fprintf(3), fputwc(3), fwide(3), printf(3), snprintf(3)



GNU                               2007-07-26                        WPRINTF(3)

COMMENTS

Add your comment here. Whitespace and linebreaks are preserved. URLs are linked automatically.
CAPTCHA

No HTML allowed. URLs will be linked with nofollow attribute. Whitespace is preserved.