_TRUNCATE_TRUNCATE

Specifica il comportamento di troncamento della stringa.Specifies string truncation behavior.

SintassiSyntax

#include <stdlib.h>  

OsservazioniRemarks

_TRUNCATE abilita il comportamento di troncamento una volta passato come parametro count a tali funzioni:_TRUNCATE enables truncation behavior when passed as the count parameter to these functions:

strncpy_s, _strncpy_s_l, wcsncpy_s, _wcsncpy_s_l, _mbsncpy_s, _mbsncpy_s_lstrncpy_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_lstrncat_s, _strncat_s_l, wcsncat_s, _wcsncat_s_l, _mbsncat_s, _mbsncat_s_l

mbstowcs_s, _mbstowcs_s_lmbstowcs_s, _mbstowcs_s_l

mbsrtowcs_smbsrtowcs_s

wcstombs_s, _wcstombs_s_lwcstombs_s, _wcstombs_s_l

wcsrtombs_swcsrtombs_s

_snprintf_s, _snprintf_s_l, _snwprintf_s, _snwprintf_s_l_snprintf_s, _snprintf_s_l, _snwprintf_s, _snwprintf_s_l

vsnprintf_s, _vsnprintf_s, _vsnprintf_s_l, _vsnwprintf_s, _vsnwprintf_s_lvsnprintf_s, _vsnprintf_s, _vsnprintf_s_l, _vsnwprintf_s, _vsnwprintf_s_l

Se il buffer di destinazione è troppo piccolo per contenere la stringa intera, il comportamento normale di queste funzioni è di considerarla una situazione di errore (vedere Convalida dei parametri).If the destination buffer is too small to hold the entire string, the normal behavior of these functions is to treat it as an error situation (see Parameter Validation). Tuttavia, se il troncamento della stringa è abilitato passando _TRUNCATE, queste funzioni copieranno solamente la quantità massima possibile della stringa, lasciando il buffer di destinazione con terminazione null e restituiranno in modo corretto.However, if string truncation is enabled by passing _TRUNCATE, these functions will copy only as much of the string as will fit, leaving the destination buffer null-terminated, and return successfully.

Il troncamento della stringa modifica i valori restituiti delle funzioni interessate.String truncation changes the return values of the affected functions. Le seguenti funzioni restituiscono 0 se il troncamento non si verifica o STRUNCATE se il troncamento si verifica:The following functions return 0 if no truncation occurs, or STRUNCATE if truncation does occur:

strncpy_s, _strncpy_s_l, wcsncpy_s, _wcsncpy_s_l, _mbsncpy_s, _mbsncpy_s_lstrncpy_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_lstrncat_s, _strncat_s_l, wcsncat_s, _wcsncat_s_l, _mbsncat_s, _mbsncat_s_l

wcstombs_s, _wcstombs_s_lwcstombs_s, _wcstombs_s_l

mbstowcs_s, _mbstowcs_s_lmbstowcs_s, _mbstowcs_s_l

Le seguenti funzioni restituiscono il numero di caratteri copiati se nessun troncamento si verifica, oppure -1 se il troncamento si verifica (che corrisponde al comportamento delle funzioni snprintf originali):The following functions return the number of characters copied if no truncation occurs, or -1 if truncation does occur (matching the behavior of the original snprintf functions):

_snprintf_s, _snprintf_s_l, _snwprintf_s, _snwprintf_s_l_snprintf_s, _snprintf_s_l, _snwprintf_s, _snwprintf_s_l

vsnprintf_s, _vsnprintf_s, _vsnprintf_s_l, _vsnwprintf_s, _vsnwprintf_s_lvsnprintf_s, _vsnprintf_s, _vsnprintf_s_l, _vsnwprintf_s, _vsnwprintf_s_l

EsempioExample

// 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 );  
}  
truncation occurred!  
'1234'  

Vedere ancheSee Also

Costanti globaliGlobal Constants