フォーマット
#include <stdarg.h> #include <wchar.h> int vwprintf(const wchar_t *format, va_list arg);
言語レベル: ANSI
スレッド・セーフ: はい。
ロケール依存: この関数の振る舞いは、 現行ロケールの LC_CTYPE カテゴリーおよび LC_NUMERIC カテゴリーの影響を 受ける可能性があります。また、LOCALETYPE(*LOCALEUCS2) または LOCALETYPE(*LOCALEUTF) がコンパイル・コマンドに対して指定されている場合は、現行ロケールの LC_UNI_CTYPE カテゴリーおよび LC_UNI_NUMERIC カテゴリーにも影響を受ける可能性があります。 この関数は、コンパイル・コマンドに対して LOCALETYPE(*CLD) が指定されている場合には使用できません。詳細については、CCSID およびロケールの理解を参照してください。
統合ファイル・システム・インターフェース: この関数は、 コンパイル・コマンドに対して SYSIFCOPT(*NOIFSIO) が指定されている場合には使用できません。
ワイド文字関数: 詳細については、ワイド文字を参照してください。
説明
vwprintf() 関数は、wprintf() 関数と同等ですが、 変数引数リストが、va_start マクロ (および、場合によっては後続の va_arg 呼び出し) によって初期化される arg によって置き換えられるという点が異なります。 vwprintf() 関数は、va_end マクロを呼び出しません。
戻り値
vwprintf() 関数は、送信されたワイド文字の数を戻します。 出力エラーが発生した場合、vwprintf() は負の値を戻します。
vwprintf() の使用例
この例では、ワイド文字 a を出力します。 この出力は vout() 関数から行われ、引数の可変値を取り、 vwprintf() 関数を使用してそれらを stdout に出力します。
#include <wchar.h> #include <stdarg.h> #include <locale.h> void vout (wchar_t *fmt, ...); const char ifs_path[] = "tmp/mytest"; int main(void) { FILE *stream; wchar_t format[] = L"%lc"; setlocale(LC_ALL, "POSIX"); vout (format, L'a'); return(0); /* A long a is written to stdout, if stdout is written to the screen it may get converted back to a single byte 'a'. */ } void vout (wchar_t *fmt, ...) { va_list arg_ptr; va_start (arg_ptr, fmt); vwprintf (fmt, arg_ptr); va_end (arg_ptr); }
関連情報