title | description | ms.date | api_name | api_location | api_type | topic_type | f1_keywords | helpviewer_keywords | ||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
_CrtSetDebugFillThreshold |
Use the _CrtSetDebugFillThreshold function to set the maximum amount of buffer to fill in secure CRT functions. |
04/10/2025 |
|
|
|
|
|
|
Retrieves or modifies the threshold controlling buffer-filling behavior in debug functions.
size_t _CrtSetDebugFillThreshold( size_t newThreshold );
newThreshold
New threshold size in bytes.
The previous threshold value.
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. To improve performance, use _CrtSetDebugFillThreshold
to disable buffer-filling for buffers larger than the newThreshold
threshold. A newThreshold
value of 0 disables it for all buffers.
The default threshold is SIZE_T_MAX
.
Here's a list of the affected functions:
asctime_s
,_wasctime_s
_cgets_s
,_cgetws_s
ctime_s
,_ctime32_s
,_ctime64_s
,_wctime_s
,_wctime32_s
,_wctime64_s
_ecvt_s
_fcvt_s
_gcvt_s
_itoa_s
,_ltoa_s
,_ultoa_s
,_i64toa_s
,_ui64toa_s
,_itow_s
,_ltow_s
,_ultow_s
,_i64tow_s
,_ui64tow_s
_makepath_s
,_wmakepath_s
_mbsnbcat_s
,_mbsnbcat_s_l
_mbsnbcpy_s
,_mbsnbcpy_s_l
_mbsnbset_s
,_mbsnbset_s_l
_mktemp_s
,_wmktemp_s
_splitpath_s
,_wsplitpath_s
strcat_s
,wcscat_s
,_mbscat_s
strcpy_s
,wcscpy_s
,_mbscpy_s
_strdate_s
,_wstrdate_s
strerror_s
,_strerror_s
,_wcserror_s
,__wcserror_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
_strtime_s
,_wstrtime_s
_strupr_s
,_strupr_s_l
,_mbsupr_s
,_mbsupr_s_l
,_wcsupr_s
,_wcsupr_s_l
vsnprintf_s
,_vsnprintf_s
,_vsnprintf_s_l
,_vsnwprintf_s
, _vsnwpr`intf_s_l
Routine | Required header |
---|---|
_CrtSetDebugFillThreshold |
<crtdbg.h> |
This function is Microsoft-specific. For more compatibility information, see Compatibility.
Debug versions of the C run-time libraries only.
// 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