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 |
+ |
+ |
+ |