vprintf_s、vwprintf_s
stdio.h:インデックス への移動
ヘッダー ファイル
stdio.h
カテゴリ
書式付き入出力関数
プロトタイプ
int vprintf_s(const char * restrict format, va_list arg);
int vwprintf_s(const wchar_t * restrict format, va_list arg);
説明
vprintf、vwprintf の代わりとなるもので、セキュリティが強化されています。
メモ: Win32 GUI アプリケーションでは、この関数を使用しないでください。
v...printf 関数群は、...printf 関数群の代替エントリ ポイントとして知られています。 対応する ...printf 関数とちょうど同じ動作をしますが、引数リストではなく、引数リストへのポインタを受け取ります。
vprintf_s は vprintf、vwprintf と同等ですが、stream、format、%s 形式指定子に対応する arg 内の項目の妥当性に関する実行時制約が付け加えられています(ここで言及したものはすべて NULL ポインタ以外でなければなりません)。
戻り値
vprintf_s は出力文字数を返します。 エラーが発生した場合、vprintf_s は負の値を返します。
例
#include <stdio.h>
#include <stdarg.h>
int vpf(char *fmt, ...)
{
va_list argptr;
int cnt;
va_start(argptr, fmt);
cnt = vprintf_s(fmt, argptr);
va_end(argptr);
return(cnt);
}
int main(void)
{
int inumber = 30;
float fnumber = 90.0;
char *string = "abc";
vpf("%d %f %s\n",inumber,fnumber,string);
return 0;
}
移植性
| POSIX | Win32 | ANSI C | ANSI C++ | |
|---|---|---|---|---|
|
vprintf_s |
+ |
+ |
+ |
+ |
|
vwprintf_s |
+ |
+ |
+ |