_TRUNCATE

 

Para obtener la documentación más reciente de Visual Studio 2017 RC, consulte Documentación de Visual Studio 2017 RC.

Especifica el comportamiento del truncamiento de la cadena.

#include <stdlib.h>  

_TRUNCATE habilita el comportamiento de truncamiento cuando se pasa como parámetro de count a estas funciones:

strncpy_s, _strncpy_s_l, wcsncpy_s, _wcsncpy_s_l, _mbsncpy_s, _mbsncpy_s_l

strncat_s, _strncat_s_l, wcsncat_s, _wcsncat_s_l, _mbsncat_s, _mbsncat_s_l

mbstowcs_s, _mbstowcs_s_l

mbsrtowcs_s

wcstombs_s, _wcstombs_s_l

wcsrtombs_s

_snprintf_s, _snprintf_s_l, _snwprintf_s, _snwprintf_s_l

vsnprintf_s, _vsnprintf_s, _vsnprintf_s_l, _vsnwprintf_s, _vsnwprintf_s_l

Si el búfer de destino es demasiado pequeño para contener la cadena completa, el comportamiento normal de estas funciones es tratarlo como una situación de error (vea Validación de parámetros). Sin embargo, si el truncamiento de la cadena se habilita pasando _TRUNCATE, estas funciones se copiará solo tanto de la cadena que caben, dejando el búfer de destino terminada en null, y vuelva correctamente.

El truncamiento de la cadena cambia los valores devueltos de funciones afectadas. Las siguientes funciones devuelven 0 si ningún truncamiento aparece, o STRUNCATE si el truncamiento se produce:

strncpy_s, _strncpy_s_l, wcsncpy_s, _wcsncpy_s_l, _mbsncpy_s, _mbsncpy_s_l

strncat_s, _strncat_s_l, wcsncat_s, _wcsncat_s_l, _mbsncat_s, _mbsncat_s_l

wcstombs_s, _wcstombs_s_l

mbstowcs_s, _mbstowcs_s_l

Las siguientes funciones devuelven el número de caracteres copiado si ningún truncamiento aparece, o -1 si el truncamiento aparece (haciendo coincidir el comportamiento de las funciones originales de snprintf):

_snprintf_s, _snprintf_s_l, _snwprintf_s, _snwprintf_s_l

vsnprintf_s, _vsnprintf_s, _vsnprintf_s_l, _vsnwprintf_s, _vsnwprintf_s_l

// crt_truncate.c  
#include <stdlib.h>  
#include <errno.h>  
  
int main()  
{  
   char src[] = "1234567890";  
   char dst[5];  
   errno_t err = strncpy_s(dst, _countof(dst), src, _TRUNCATE);  
   if ( err == STRUNCATE )  
      printf( "truncation occurred!\n" );  
   printf( "'%s'\n", dst );  
}  

el truncamiento se produjo!
'1234'

Constantes globales

Mostrar: