_set_printf_count_output

, , _wprintf_l-family 関数の %n 形式のwprintfprintf_printf_lサポートを有効または無効にします。

構文

int _set_printf_count_output(
   int enable
);

パラメーター

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

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

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

解説

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

必要条件

ルーチンによって返される値 必須ヘッダー
_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