vprintf
関数
vprintf
の各関数は引数リストへのポインターを受け取り、指定されたデータを書式設定して特定の出力先に書き込みます。 関数は、いくつかの方法で異なります。パラメーターの検証では、関数が 1 バイトまたはワイドの文字列を受け取るかどうか、出力先、および順序パラメーターを指定するためのサポートが書式指定文字列で使用されます。
_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
_vscprintf
、 _vscprintf_l
、 _vscwprintf
、 _vscwprintf_l
_vsnprintf
、 _vsnwprintf
vsprintf
、 vswprintf
_vsprintf_p
、 _vsprintf_p_l
、 _vswprintf_p
、 _vswprintf_p_l
vsprintf_s
、 _vsprintf_s_l
、 vswprintf_s
、 _vswprintf_s_l
解説
vprintf
の各関数は、次の表にまとめたとおり、対応する関数に似ています。 ただし、vprintf
の各関数は引数リストへのポインターを受け取るのに対し、対応する各関数は引数リストを受け取ります。
次のように、これらの関数はデータを書式設定して出力先に書き込みます。
機能 | 対応する関数 | 出力先 | パラメーターの検証 | 位置指定パラメーターのサポート |
---|---|---|---|---|
_vcprintf |
_cprintf |
console | Null を確認します。 | いいえ |
_vcwprintf |
_cwprintf |
console | Null を確認します。 | いいえ |
vfprintf |
fprintf |
stream |
Null を確認します。 | いいえ |
vfprintf_p |
fprintf_p |
stream |
Null と有効な書式を確認します。 | はい |
vfprintf_s |
fprintf_s |
stream |
Null と有効な書式を確認します。 | いいえ |
vfwprintf |
fwprintf |
stream |
Null を確認します。 | いいえ |
vfwprintf_p |
fwprintf_p |
stream |
Null と有効な書式を確認します。 | はい |
vfwprintf_s |
fwprintf_s |
stream |
Null と有効な書式を確認します。 | いいえ |
vprintf |
printf |
stdout |
Null を確認します。 | いいえ |
vprintf_p |
printf_p |
stdout |
Null と有効な書式を確認します。 | はい |
vprintf_s |
printf_s |
stdout |
Null と有効な書式を確認します。 | いいえ |
vwprintf |
wprintf |
stdout |
Null を確認します。 | いいえ |
vwprintf_p |
wprintf_p |
stdout |
Null と有効な書式を確認します。 | はい |
vwprintf_s |
wprintf_s |
stdout |
Null と有効な書式を確認します。 | いいえ |
vsprintf |
sprintf |
によって指されるメモリ buffer |
Null を確認します。 | いいえ |
vsprintf_p |
sprintf_p |
によって指されるメモリ buffer |
Null と有効な書式を確認します。 | はい |
vsprintf_s |
sprintf_s |
によって指されるメモリ buffer |
Null と有効な書式を確認します。 | いいえ |
vswprintf |
swprintf |
によって指されるメモリ buffer |
Null を確認します。 | いいえ |
vswprintf_p |
swprintf_p |
によって指されるメモリ buffer |
Null と有効な書式を確認します。 | はい |
vswprintf_s |
swprintf_s |
によって指されるメモリ buffer |
Null と有効な書式を確認します。 | いいえ |
_vscprintf |
_vscprintf |
によって指されるメモリ buffer |
Null を確認します。 | いいえ |
_vscwprintf |
_vscwprintf |
によって指されるメモリ buffer |
Null を確認します。 | いいえ |
_vsnprintf |
_snprintf |
によって指されるメモリ buffer |
Null を確認します。 | いいえ |
_vsnwprintf |
_snwprintf |
によって指されるメモリ buffer |
Null を確認します。 | いいえ |
引数 argptr
は、VARARGS.H と STDARG.H で定義される va_list
型を持ちます。 argptr
変数は、va_start,によって初期化する必要があり、後続のva_arg
呼び出しによって再初期化される可能性があります。argptr
は、変換され、format
引数の対応する仕様に従って出力用に送信される引数のリストの先頭を指します。 format
には、printf
のformat
引数と同じ形式と機能があります。 これらの関数のいずれも va_end
を呼び出しません。 各 vprintf
関数の詳細については、上の表にある対応する関数の説明をご覧ください。
_vsnprintf
は、buffer
にcount
バイト以下を書き込むという点で、vsprintf
とは異なります。
名前に w infix が付いたこれらの関数のバージョンは、 w infix のない対応する関数のワイド文字バージョンです。これらのワイド文字関数では、 buffer
と format
はワイド文字列です。 それ以外のワイド文字の各関数は SBCS の対応する関数と全く同じ動作をします。
_s
サフィックスと_p
サフィックスを持つこれらの関数のバージョンは、より安全なバージョンです。 これらのバージョンでは、書式指定文字列が検証されます。 書式指定文字列が整形式でない場合 (たとえば、無効な書式設定文字が使用されている場合) は例外が生成されます。
_p
サフィックスを持つこれらの関数のバージョンを使用すると、指定された引数を書式指定文字列で置き換える順序を指定できます。 詳細については、「printf_p の位置指定パラメーター」をご覧ください。
vsprintf
、vswprintf
、_vsnprintf
、および_vsnwprintf
の場合、重複する文字列間でコピーが行われる場合、動作は未定義です。
重要
format
にユーザー定義の文字列を指定しないでください。 詳細については、「バッファー オーバーランの回避」を参照してください。 これらの関数のセキュリティで保護されたバージョン ( _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_copy
、 va_end
、 va_start