Note
Access to this page requires authorization. You can try signing in or changing directories.
Access to this page requires authorization. You can try changing directories.
Retrieves or modifies the threshold controlling buffer-filling behavior in debug functions.
Syntax
size_t _CrtSetDebugFillThreshold( size_t newThreshold );
Parameters
newThreshold
New threshold size in bytes.
Return value
The previous threshold value.
Remarks
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_sctime_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_sstrcat_s,wcscat_s,_mbscat_sstrcpy_s,wcscpy_s,_mbscpy_s_strdate_s,_wstrdate_sstrerror_s,_strerror_s,_wcserror_s,__wcserror_s_strlwr_s,_strlwr_s_l,_mbslwr_s,_mbslwr_s_l,_wcslwr_s,_wcslwr_s_lstrncat_s,_strncat_s_l,wcsncat_s,_wcsncat_s_l,_mbsncat_s,_mbsncat_s_lstrncpy_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_lvsnprintf_s,_vsnprintf_s,_vsnprintf_s_l,_vsnwprintf_s,_vsnwprintf_s_l
Requirements
| Routine | Required header |
|---|---|
_CrtSetDebugFillThreshold |
<crtdbg.h> |
This function is Microsoft-specific. For more compatibility information, see Compatibility.
Libraries
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