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
の引数と同じ形式と関数を format
持 printf
っています。 これらの関数のいずれも呼び出しません va_end
。 各 vprintf
関数の詳細については、上の表にある対応する関数の説明をご覧ください。
_vsnprintf
は、書き込みバイトbuffer
数以下count
であるという点でvsprintf
異なります。
名前に w のインフィックスが付いたこれらの関数のバージョンは、w インフィックスのない対応する関数のワイド文字バージョンです。これらのワイド文字関数のそれぞれでは、 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
フィードバック
https://aka.ms/ContentUserFeedback」を参照してください。
以下は間もなく提供いたします。2024 年を通じて、コンテンツのフィードバック メカニズムとして GitHub の issue を段階的に廃止し、新しいフィードバック システムに置き換えます。 詳細については、「フィードバックの送信と表示