_TRUNCATE

Specifica il comportamento di troncamento della stringa.

Sintassi

#include <stdlib.h>  

Osservazioni

_TRUNCATE abilita il comportamento di troncamento una volta passato come parametro count a tali funzioni:

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

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). 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.

Il troncamento della stringa modifica i valori restituiti delle funzioni interessate. Le seguenti funzioni restituiscono 0 se il troncamento non si verifica o STRUNCATE se il troncamento si verifica:

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

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):

_snprintf_s, _snprintf_s_l, _snwprintf_s, _snwprintf_s_l

vsnprintf_s, _vsnprintf_s, _vsnprintf_s_l, _vsnwprintf_s, _vsnwprintf_s_l

Esempio

// 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 anche

Costanti globali