_scprintf_p、_scprintf_p_l、_scwprintf_p、_scwprintf_p_l
更新 : 2007 年 11 月
書式指定文字列の文字数を返し、書式指定文字列でパラメータを使用する順序を指定します。
int _scprintf_p(
const char *format [,
argument] ...
);
int _scprintf_p_l(
const char *format,
locale_t locale [,
argument] ...
);
int _scwprintf_p (
const wchar_t *format [,
argument] ...
);
int _scwprintf_p _l(
const wchar_t *format,
locale_t locale [,
argument] ...
);
パラメータ
format
書式指定文字列。argument
省略可能な引数。locale
使用するロケール。
戻り値
指定されている書式指定文字列を使用して、文字列を出力するかファイルまたはバッファに送る場合は、出力される文字数を返します。戻り値には、終端の null 文字が含まれません。ワイド文字の場合、_scwprintf_p が同じ機能です。
_scprintf_p と _scprintf の違いは、_scprintf_p では位置指定パラメータをサポートし、これによって、書式指定文字列で引数を使用する順序を指定できることです。詳細については、「printf_p の位置指定パラメータ」を参照してください。
format が NULL ポインタの場合は、「パラメータの検証」に説明されているように、無効なパラメータ ハンドラが呼び出されます。実行の継続が許可された場合、これらの関数は -1 を返し、errno を EINVAL に設定します。
エラー コードの詳細については、「_doserrno、errno、_sys_errlist、および _sys_nerr」を参照してください。
解説
各 argument (指定されている場合) は、format 中の対応する書式指定に従って変換されます。format は通常の文字で構成され、その形式と機能は printf 関数の format と同じです。
これらの関数のうち _l サフィックスが付けられたバージョンは、現在のスレッド ロケールの代わりに渡されたロケール パラメータを使用する点を除いて同じです。
セキュリティに関するメモ : |
---|
format にユーザー定義の文字列を指定しないでください。 |
汎用テキスト ルーチンのマップ
Tchar.h のルーチン |
_UNICODE および _MBCS が未定義の場合 |
_MBCS が定義されている場合 |
_UNICODE が定義されている場合 |
---|---|---|---|
_sctprintf_p |
_scprintf_p |
_scprintf_p |
_scwprintf_p |
_sctprintf_p_l |
_scprintf_p_l |
_scprintf_p_l |
_scwprintf_p_l |
必要条件
ルーチン |
必須ヘッダー |
---|---|
_scprintf_p, _scprintf_p_l |
<stdio.h> |
_scwprintf_p, _scwprintf_p_l |
<stdio.h> または <wchar.h> |
互換性の詳細については、「C ランタイム ライブラリ」の「互換性」を参照してください。