_TRUNCATE

Spécifie le comportement de la troncation de chaîne.

#include <stdlib.h>

Notes

_TRUNCATE active le comportement de la troncation quand il est transmis comme le paramètre count à ces fonctions :

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 la mémoire tampon de destination est trop petite pour traiter la chaîne entière, le fonctionnement normal de ces fonctions est de traiter ça comme un cas d'erreur (consultez Validation de paramètre). Toutefois, si la troncation de chaîne est activée en passant _TRUNCATE, ces fonctions copieront uniquement autant de la chaîne que ce qui peut tenir, en laissant la mémoire tampon de destination terminée par le caractère NULL, et retourneront correctement.

Chaîne de troncation modifie les valeurs de retour des fonctions affectées. Les fonctions suivantes retournent 0 si aucune troncation ne se produit, ou STRUNCATE si la troncation se produit :

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

Les fonctions suivantes retournent le nombre de caractères copiés si aucune troncation ne se produit, ou -1 si la troncation se produit (correspondant au comportement des fonctions d'origine snprintf) :

_snprintf_s, _snprintf_s_l, _snwprintf_s, _snwprintf_s_l

vsnprintf_s, _vsnprintf_s, _vsnprintf_s_l, _vsnwprintf_s, _vsnwprintf_s_l

Exemple

// 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 );
}
  

Voir aussi

Référence

Constantes globales