_CrtSetDebugFillThreshold_CrtSetDebugFillThreshold

デバッグ関数でバッファーへの格納動作を制御するしきい値を取得または変更します。Retrieves or modifies the threshold controlling buffer-filling behavior in debug functions.

構文Syntax

size_t _CrtSetDebugFillThreshold( size_t newThreshold );

パラメーターParameters

newThresholdnewThreshold
新しいしきい値のサイズ (バイト単位)。New threshold size in bytes.

戻り値Return value

前のしきい値。The previous threshold value.

RemarksRemarks

一部のセキュリティが強化された CRT 関数のデバッグバージョンでは、特殊文字 (0xFE) を使用して渡されたバッファーがいっぱいになります。The debug versions of some security-enhanced CRT functions fill the buffer passed to them with a special character (0xFE). このフィル文字は、間違ったサイズが関数に渡されたケースを見つけるのに役立ちます。This fill character helps to find cases where the incorrect size was passed to the function. 残念ながら、パフォーマンスを低下させます。Unfortunately, it also reduces performance. パフォーマンスを向上させるには、 _CrtSetDebugFillThresholdを使用して、 newthresholdしきい値を超えるバッファーの入力を無効にします。To improve performance, use _CrtSetDebugFillThreshold to disable buffer-filling for buffers larger than the newThreshold threshold. Newthreshold値が0の場合は、すべてのバッファーで無効になります。A newThreshold value of 0 disables it for all buffers.

既定のしきい値はSIZE_T_MAXです。The default threshold is SIZE_T_MAX.

影響を受ける関数の一覧は次のようになります。Here is a list of the affected functions.

[要件]Requirements

ルーチンによって返される値Routine 必須ヘッダーRequired header
_CrtSetDebugFillThreshold_CrtSetDebugFillThreshold <crtdbg.h><crtdbg.h>

この関数は、Microsoft 固有の関数です。This function is Microsoft-specific. 互換性について詳しくは、「互換性」を参照してください。For more compatibility information, see Compatibility.

ライブラリLibraries

C ランタイムライブラリのデバッグバージョンのみ。Debug versions of the C run-time libraries only.

Example

// crt_crtsetdebugfillthreshold.c
// compile with: cl /MTd crt_crtsetdebugfillthreshold.c
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <crtdbg.h>

void Clear( char buff[], size_t size )
{
   for( int i=0; i<size; ++i )
      buff[i] = 0;
}

void Print( char buff[], size_t size )
{
   for( int i=0; i<size; ++i )
      printf( "%02x  %c\n", (unsigned char)buff[i], buff[i] );
}

int main( void )
{
   char buff[10];

   printf( "With buffer-filling on:\n" );
   strcpy_s( buff, _countof(buff), "howdy" );
   Print( buff, _countof(buff) );

   _CrtSetDebugFillThreshold( 0 );

   printf( "With buffer-filling off:\n" );
   Clear( buff, _countof(buff) );
   strcpy_s( buff, _countof(buff), "howdy" );
   Print( buff, _countof(buff) );
}
With buffer-filling on:
68  h
6f  o
77  w
64  d
79  y
00
fe  ■
fe  ■
fe  ■
fe  ■
With buffer-filling off:
68  h
6f  o
77  w
64  d
79  y
00
00
00
00
00

関連項目See also

デバッグ ルーチンDebug Routines