vwprintf() — 引数データのワイド文字としてのフォーマット設定と出力

フォーマット

#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);                                                 
}                                

関連情報



[ ページのトップ | 前ページ | 次ページ | 目次 | 索引 ]