次の方法で共有


_set_printf_count_output

printf、_printf_l、wprintf、_wprintf_l の %n 形式で有効または無効のサポート - Family します。

int _set_printf_count_output(
   int enable
);

パラメーター

  • enable
    %n のサポートを %n のサポートを有効にする0 以外の値。

プロパティ値/戻り値

この関数を呼び出すまでの %n の状態 : 無効な場合 %n のサポートが有効な場合は。それ以外の場合は 0。

解説

セキュリティ上の理由により%n の書式指定子のサポートは printfすべてのバリアントに既定で無効になっています。%n が printf の書式指定で発生した場合既定では パラメーターの検証 に説明されているように無効なパラメーター ハンドラーを呼び出します。以外の引数で _set_printf_count_output を呼び出すとprintf- printf 関数の型フィールド文字 に説明されているように %n を解釈するファミリの関数になります。

必要条件

ルーチン

必須ヘッダー

_set_printf_count_output

<stdio.h>

互換性の詳細については、「C ランタイム ライブラリ」の「互換性」を参照してください。

使用例

// crt_set_printf_count_output.c
#include <stdio.h>

int main()
{
   int e;
   int i;
   e = _set_printf_count_output( 1 );
   printf( "%%n support was %sabled.\n",
        e ? "en" : "dis" );
   printf( "%%n support is now %sabled.\n",
        _get_printf_count_output() ? "en" : "dis" );
   printf( "12345%n6789\n", &i ); // %n format should set i to 5
   printf( "i = %d\n", i );
}

出力

%n support was disabled.
%n support is now enabled.
123456789
i = 5

同等の .NET Framework 関数

該当なし標準 C 関数を呼び出すには、PInvoke を使用します。詳細については、「プラットフォーム呼び出しの例」を参照してください。

参照

関連項目

_get_printf_count_output