_CrtSetDebugFillThreshold
Hata ayıklama işlevlerinde arabellek doldurma davranışını denetleye eşiği alır veya değiştirir.
Sözdizimi
size_t _CrtSetDebugFillThreshold( size_t newThreshold );
Parametreler
newThreshold
Bayt cinsinden yeni eşik boyutu.
Dönüş değeri
Önceki eşik değeri.
Açıklamalar
Güvenlikle geliştirilmiş bazı CRT işlevlerinin hata ayıklama sürümleri, kendilerine geçirilen arabelleği özel bir karakterle (0xFE) doldurur. Bu dolgu karakteri, işleve yanlış boyutun geçirildiği durumları bulmaya yardımcı olur. Ne yazık ki performansı da düşürür. Performansı geliştirmek için, eşikten daha büyük arabellekler için arabellek doldurmayı newThreshold
devre dışı bırakmak için kullanın_CrtSetDebugFillThreshold
. newThreshold
0 değeri, bunu tüm arabellekler için devre dışı bırakır.
Varsayılan eşik değeridir SIZE_T_MAX
.
Etkilenen işlevlerin listesi aşağıdadır:
ctime_s
,_ctime32_s
,_ctime64_s
, ,_wctime_s
,_wctime32_s
,_wctime64_s
_strlwr_s
,_strlwr_s_l
,_mbslwr_s
, ,_mbslwr_s_l
,_wcslwr_s
,_wcslwr_s_l
strncat_s
,_strncat_s_l
,wcsncat_s
, ,_wcsncat_s_l
,_mbsncat_s
,_mbsncat_s_l
strncpy_s
,_strncpy_s_l
,wcsncpy_s
, ,_wcsncpy_s_l
,_mbsncpy_s
,_mbsncpy_s_l
_strnset_s
,_strnset_s_l
,_wcsnset_s
, ,_wcsnset_s_l
,_mbsnset_s
,_mbsnset_s_l
_strset_s
,_strset_s_l
,_wcsset_s
, ,_wcsset_s_l
,_mbsset_s
,_mbsset_s_l
_strupr_s
,_strupr_s_l
,_mbsupr_s
, ,_mbsupr_s_l
,_wcsupr_s
,_wcsupr_s_l
Gereksinimler
Yordam | Gerekli başlık |
---|---|
_CrtSetDebugFillThreshold |
<crtdbg.h> |
Bu işlev Microsoft'a özgüdür. Daha fazla uyumluluk bilgisi için bkz . Uyumluluk.
Kitaplıklar
Yalnızca C çalışma zamanı kitaplıklarının sürümlerinde hata ayıklama.
Örnek
// 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