次の方法で共有


_set_printf_count_output

printf_printf_lwprintf_wprintf_l ファミリ関数の%n形式のサポートを有効または無効にします。

構文

int _set_printf_count_output(
   int enable
);

パラメーター

enable
%n のサポートを有効にする場合は 0 以外の値、%n のサポートを無効にする場合は 0。

プロパティ値または戻り値

この関数を呼び出す前の %n サポートの状態。%n サポートが有効だった場合は 0 以外。無効だった場合は 0。

解説

セキュリティ上の理由から、 %n 書式指定子のサポートは、 printf とそのすべてのバリアントで既定で無効になっています。 %nprintf形式の仕様で検出された場合、既定の動作では、Parameter 検証で説明されているように、無効なパラメーター ハンドラーが呼び出されます。 引数が 0 以外の _set_printf_count_output を呼び出すと、 printf ファミリ関数は、 %n Format 仕様構文の説明に従って解釈されます: printf 関数と wprintf 関数

要件

ルーチンによって返される値 必須ヘッダー
_set_printf_count_output <stdio.h>

互換性の詳細については、「 Compatibility」を参照してください。

// 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

関連項目

_get_printf_count_output