_mbccpy_s, _mbccpy_s_l

 

Pour obtenir la dernière documentation sur Visual Studio 2017, consultez Documentation Visual Studio 2017.

Copie un caractère multioctet à partir d’une chaîne dans une autre chaîne. Ces versions de _mbccpy, _mbccpy_l ont des améliorations de sécurité, comme décrit dans fonctionnalités de sécurité de la bibliothèque CRT.

System_CAPS_ICON_important.jpg Important

Cette API ne peut pas être utilisée dans les applications qui s'exécutent dans le Windows Runtime. Pour plus d’informations, consultez Fonctions CRT non prises en charge avec /ZW.

errno_t _mbccpy_s(  
   unsigned char *dest,  
   size_t buffSizeInBytes,  
   int * pCopied,  
   const unsigned char *src   
);  
errno_t _mbccpy_s_l(  
   unsigned char *dest,  
   size_t buffSizeInBytes,  
   int * pCopied,  
   const unsigned char *src,  
   locale_t locale  
);  
template <size_t size>  
errno_t _mbccpy_s(  
   unsigned char (&dest)[size],  
   int * pCopied,  
   const unsigned char *src   
); // C++ only  
template <size_t size>  
errno_t _mbccpy_s_l(  
   unsigned char (&dest)[size],  
   int * pCopied,  
   const unsigned char *src,  
   locale_t locale  
); // C++ only  

Paramètres

[out] dest
Destination de la copie.

[in] buffSizeInBytes
Taille de la mémoire tampon de destination.

[out] pCopied
Rempli avec le nombre d’octets copiés (1 ou 2 en cas de réussite). Transmettez NULL si le nombre ne vous intéressent.

[in] src
Caractères multioctets à copier.

[in] locale
Paramètres régionaux à utiliser.

Zéro si l'opération a réussi ; code d'erreur en cas de échec. Si src ou dest est NULL, ou si plusieurs buffSizeinBytes octets sont copiés à dest, puis le Gestionnaire de paramètre non valide est appelé, comme décrit dans Validation de paramètre. Si l'exécution est autorisée à continuer, les fonctions retournent EINVAL et errno est défini à EINVAL.

Le _mbccpy_s fonction copie un caractère multioctet de src à dest. Si src ne pointe pas vers l’octet de tête d’un caractère multioctet déterminé par un appel implicite à _ismbblead, puis l’octet unique qui src pointe vers est copié. Si src pointe vers un octet de tête, mais l’octet suivant est 0 et donc non valide, 0 est copié vers dest, errno a EILSEQ, et la fonction renvoie EILSEQ.

_mbccpy_sn’ajoute pas d’une marque de fin null ; Toutefois, si src pointe vers un caractère null, alors que la valeur null est copiée vers dest (il s’agit d’une copie sur un octet régulière).

La valeur de pCopied est rempli avec le nombre d’octets copiés. Les valeurs possibles sont 1 et 2 si l’opération a réussi. Si NULL est passée, ce paramètre est ignoré.

srccopiées versdestpCopiedValeur de retour
octet de têteoctet de tête10
0010
suivi d’une valeur différente de&0;-octet de têtesuivi d’une valeur différente de&0;-octet de tête20
suivi de 0-octet de tête01EILSEQ

Notez que la deuxième ligne est simplement un cas spécial du premier. Notez également que ce tableau suppose buffSizeInBytes >= pCopied.

_mbccpy_sutilise les paramètres régionaux actuels pour tout comportement dépendant des paramètres régionaux. _mbccpy_s_lest identique à _mbccpy_s mais _mbccpy_s_l utilise les paramètres régionaux passés dans tout comportement dépendant des paramètres régionaux.

En C++, l’utilisation de ces fonctions est simplifiée par les surcharges de modèle ; les surcharges peuvent déduire la longueur de la mémoire tampon automatiquement, en éliminant le besoin de spécifier un argument taille. Pour plus d'informations, consultez Secure Template Overloads.

Mappages de routines de texte générique

Routine Tchar.h_UNICODE et _MBCS non définis_MBCS défini_UNICODE défini
_tccpy_sMappe à la fonction inline ou macro._mbccpy_sMappe à la fonction inline ou macro.
RoutineEn-tête requis
_mbccpy_s<mbstring.h>
_mbccpy_s_l<mbstring.h>

Pour plus d’informations sur la compatibilité, consultez Compatibility.

Paramètres régionaux
Interprétation des séquences de caractères multioctets
_mbclen, mblen, _mblen_l

Afficher: