次の方法で共有


vprintf 系関数

vprintf 系関数は、引数リストへのポインターを使用して、指定されたデータを書式化し、特定の出力先に書き込みます。 この関数は、実行されるパラメーターの検証、ワイド文字列またはシングル バイト文字列のどちらを受け取るか、出力先、および書式設定文字列でパラメーターを使用する順序を指定できるかどうかによって異なります。

_vcprintf、_vcwprintf

vfprintf、vfwprintf

_vfprintf_p、_vfprintf_p_l、_vfwprintf_p、_vfwprintf_p_l

vfprintf_s、_vfprintf_s_l、vfwprintf_s、_vfwprintf_s_l

vprintf、vwprintf

_vprintf_p、_vprintf_p_l、_vwprintf_p、_vwprintf_p_l

vprintf_s、_vprintf_s_l、vwprintf_s、_vwprintf_s_l

vsprintf、vswprintf

_vsprintf_p、_vsprintf_p_l、_vswprintf_p、_vswprintf_p_l

vsprintf_s、_vsprintf_s_l、vswprintf_s、_vswprintf_s_l

_vscprintf、_vscprintf_l、_vscwprintf、_vscwprintf_l

_vsnprintf、_vsnwprintf

解説

vprintf 系関数は、次の表に示す対応する関数に似ています。 ただし、vprintf 系関数は引数リストへのポインターを受け取りますが、対応する関数は引数リストを受け取ります。

これらの関数は、次のようにデータを書式化して出力先に書き込みます。

機能

対応する関数

出力先

パラメーターの検証

位置指定パラメーターのサポート

_vcprintf

_cprintf

コンソール

null 値の有無をチェックします。

no

_vcwprintf

_cwprintf

コンソール

null 値の有無をチェックします。

no

vfprintf

fprintf

Stream

null 値の有無をチェックします。

no

vfprintf_p

fprintf_p

Stream

null 値の有無および書式が有効かどうかをチェックします。

vfprintf_s

fprintf_s

Stream

null 値の有無および書式が有効かどうかをチェックします。

no

vfwprintf

fwprintf

Stream

null 値の有無をチェックします。

no

vfwprintf_p

fwprintf_p

Stream

null 値の有無および書式が有効かどうかをチェックします。

vfwprintf_s

fwprintf_s

Stream

null 値の有無および書式が有効かどうかをチェックします。

no

vprintf

printf

Stdout

null 値の有無をチェックします。

no

vprintf_p

printf_p

Stdout

null 値の有無および書式が有効かどうかをチェックします。

vprintf_s

printf_s

Stdout

null 値の有無および書式が有効かどうかをチェックします。

no

vwprintf

wprintf

Stdout

null 値の有無をチェックします。

no

vwprintf_p

wprintf_p

Stdout

null 値の有無および書式が有効かどうかをチェックします。

vwprintf_s

wprintf_s

Stdout

null 値の有無および書式が有効かどうかをチェックします。

no

vsprintf

sprintf

buffer で指定されたメモリ

null 値の有無をチェックします。

no

vsprintf_p

sprintf_p

buffer で指定されたメモリ

null 値の有無および書式が有効かどうかをチェックします。

vsprintf_s

sprintf_s

buffer で指定されたメモリ

null 値の有無および書式が有効かどうかをチェックします。

no

vswprintf

swprintf

buffer で指定されたメモリ

null 値の有無をチェックします。

no

vswprintf_p

swprintf_p

buffer で指定されたメモリ

null 値の有無および書式が有効かどうかをチェックします。

vswprintf_s

swprintf_s

buffer で指定されたメモリ

null 値の有無および書式が有効かどうかをチェックします。

no

_vscprintf

_vscprintf

buffer で指定されたメモリ

null 値の有無をチェックします。

no

_vscwprintf

_vscwprintf

buffer で指定されたメモリ

null 値の有無をチェックします。

no

_vsnprintf

_snprintf

buffer で指定されたメモリ

null 値の有無をチェックします。

no

_vsnwprintf

_snwprintf

buffer で指定されたメモリ

null 値の有無をチェックします。

no

引数 argptr は va_list 型であり、VARARGS.H および STDARG.H で定義されています。 変数 argptr は va_start で初期化しますが、後続の va_arg の呼び出しで再初期化できます。argptr は、引数 format 内の対応する指定に従って変換および送信される引数のリストの先頭を指します。 format の書式と機能は、printf の引数 format と同じです。 vprintf 系関数は、va_end を呼び出しません。 vprintf 系関数の詳細については、上の表に示された対応する関数の説明を参照してください。

vsprintf 関数とは異なり、_vsnprintf 関数が buffer に書き込むデータは count のバイト数以内です。

名前に w 挿入辞が付くこれらの関数は、w 挿入辞が付かない関数と対応しており、その対応する関数のワイド文字バージョンです。ワイド文字関数では、bufferformat はワイド文字列になります。 それ以外では、各ワイド文字関数の動作は、対応する 1 バイト文字セットの関数の動作と同じです。

_s サフィックスと _p サフィックスが付いている関数は、セキュリティが強化されたバージョンです。 このバージョンは、書式指定文字列を検証し、無効な書式指定文字が使用されているなど、文字列の書式が正しくない場合は例外を生成します。

_p サフィックスが付いているバージョンの関数では、提供されている引数を書式指定文字列で置き換える順序を指定できます。 詳細については、「printf_p の位置指定パラメーター」を参照してください。

vsprintfvswprintf_vsnprintf および _vsnwprintf 関数の場合、重なり合う文字列間でコピーした場合の動作は未定義です。

セキュリティに関するメモセキュリティに関するメモ

format がユーザー定義の文字列でないことを確認してください。 詳細については、「Avoiding Buffer Overruns」を参照してください。 _s サフィックスまたは _p サフィックスが付いているセキュリティが強化されたバージョンの関数を使用する場合、ユーザーが提供する文字列に無効な書式指定文字が含まれていると、例外が生成されます。

参照

参照

ストリーム入出力

fprintf、_fprintf_l、fwprintf、_fwprintf_l

printf、_printf_l、wprintf、_wprintf_l

sprintf、_sprintf_l、swprintf、_swprintf_l、__swprintf_l

va_arg、va_end、va_start