_CrtSetDebugFillThreshold
Recupera o modifica el umbral que controla el comportamiento de llenado de búfer en las funciones de depuración.
Sintaxis
size_t _CrtSetDebugFillThreshold( size_t newThreshold );
Parámetros
newThreshold
Tamaño del umbral nuevo en bytes.
Valor devuelto
Valor del umbral anterior.
Comentarios
Las versiones de depuración de algunas funciones de CRT con seguridad mejorada llenan el búfer que se les pasa con un carácter especial (0xFE). Este carácter de relleno ayuda a encontrar casos en que se ha pasado el tamaño incorrecto a la función. Lamentablemente, también reduce el rendimiento. Para mejorar el rendimiento, use _CrtSetDebugFillThreshold
para deshabilitar el llenado de búferes para los búferes mayores que el newThreshold
umbral. Un newThreshold
valor de 0 lo deshabilita para todos los búferes.
El umbral predeterminado es SIZE_T_MAX
.
Esta es una lista de las funciones afectadas:
ctime_s
,_ctime32_s
,_ctime64_s
,_wctime_s
, ,_wctime32_s
,_wctime64_s
_itoa_s
,_ltoa_s
,_ultoa_s
,_i64toa_s
,_ui64toa_s
,_itow_s
,_ltow_s
,_ultow_s
, ,_i64tow_s
_ui64tow_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
Requisitos
Routine | Encabezado necesario |
---|---|
_CrtSetDebugFillThreshold |
<crtdbg.h> |
Esta función es específica de Microsoft. Para obtener más información sobre compatibilidad, consulte Compatibilidad.
Bibliotecas
Versiones de depuración únicamente de las bibliotecas en tiempo de ejecución de C.
Ejemplo
// 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