vfwprintf() — 引数データのワイド文字としてのフォーマット設定とストリームへの書き込み
形式
#include <stdarg.h>
#include <stdio.h>
#include <wchar.h>
int vfwprintf(FILE *stream, 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) が指定されている場合には使用できません。
ワイド文字関数
詳しくは、 ワイド文字 を参照してください。
説明
vfwprintf() 関数は fwprintf() 関数と同等ですが、変数引数リストが argに置き換えられる点が異なります。arg は、va_start マクロ (および場合によっては後続の va_arg 呼び出し) によって初期化されます。 vfwprintf() 関数は、va_end マクロを呼び出しません。
関数 vfwprintf()、 vswprintf()、および vwprintf() は va_arg マクロを呼び出すため、戻り後の arg の値は指定されません。
戻り値
vfwprintf() 関数は、出力バッファーに書き込まれたワイド文字の数を戻します。エラーが検出された場合は、終了ヌル・ワイド文字または負の値はカウントしません。 n 文字以上のワイド文字の書き込みが要求された場合、
負の値が戻されます。
例
vout() 関数から行われます。この関数は、可変数の引数を取り、 vfwprintf() を使用してそれらの引数をファイルに出力します。#include <wchar.h>
#include <stdarg.h>
#include <locale.h>
void vout (FILE *stream, wchar_t *fmt, ...);
const char ifs_path [] = "/tmp/myfile";
int main(void) {
FILE *stream;
wchar_t format [] = L"%lc";
setlocale(LC_ALL, "POSIX");
if ((stream = fopen (ifs_path, "w")) == NULL) {
printf("Could not open file.\n");
return (-1);
}
vout (stream, format, L'a');
fclose (stream);
/***********************************************
The contents of output file /tmp/myfile should
be a wide char 'a' which in the "POSIX" locale
is '0081'x.
*/
return (0);
}
void vout (FILE *stream, wchar_t *fmt, ...)
{
va_list arg_ptr;
va_start (arg_ptr, fmt);
vfwprintf (stream, fmt, arg_ptr);
va_end (arg_ptr);
} 関連情報
- printf() — フォーマット済み文字を印刷する
- fprintf() — フォーマット済みデータをストリームに書き込む
- vfprintf() — 引数データをストリームに印刷する
- vprintf() — 引数データを印刷する
- btowc() — 単一バイトからワイド文字へ変換する
- mbrtowc() — マルチバイト文字をワイド文字へ変換する (再始動可能)
- fwprintf() — データをワイド・キャラクターとしてフォーマットし、ストリームに書き込む
- vswprintf() — バッファーにワイド文字をフォーマットして書き込む
- vwprintf() — ワイド文字としてデータをフォーマットし、出力する
- <stdarg.h>
- <stdio.h>
- <wchar.h>