このドキュメントはアーカイブされており、メンテナンスされていません。

_set_printf_count_output

printf、_printf_l、wprintf、_wprintf_l 系関数の %n 書式のサポートを有効または無効にします。


int _set_printf_count_output(
   int enable
);

パラメータ

enable

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

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

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

ルーチン 必須ヘッダー 互換性

_set_printf_count_output

<stdio.h>

ANSI、Windows 95, Windows 98, Windows 98 Second Edition, Windows Millennium Edition、Windows NT 4.0、Windows 2000、Windows XP Home Edition、Windows XP Professional、Windows Server 2003

互換性の詳細については、「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

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

表示: