_mbccpy_s, _mbccpy_s_l
Copie un caractère multioctet unique d'une chaîne à une autre chaîne.Ce sont des versions de _mbccpy, _mbccpy_l avec des améliorations de sécurité comme décrit dans Fonctionnalités de sécurité du CRT.
Important
Cette API ne peut pas être utilisée dans les applications qui s'exécutent dans les fenêtres d'exécution.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
Copiez la destination.[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).Passez NULL si vous ne vous inquiétez pas du nombre.[in] src
Caractères multioctet à copier.[in] locale
Paramètres régionaux à utiliser.
Valeur de retour
Zéro si l'opération a réussi ; code d'erreur en cas de échec.Si src ou dest est NULL, ou si plus de les octets d' buffSizeinBytes seraient copiés vers dest, le gestionnaire de paramètre non valide est appelé, comme décrit dans Validation des paramètres.Si est autorisé à l'exécution pour continuer, les fonctions EINVAL de retour et errno est définie à EINVAL.
Notes
La fonction d' _mbccpy_s copie un caractère multioctet d' src à dest.Si src n'indique pas l'octet de tête d'un caractère multioctet déterminé par un appel implicite à _ismbblead, l'octet unique auquel les points d' src sont copiés.Si les points d' src à un octet de tête mais l'octet suivant est 0 et donc non valide, puis 0 est copié dans dest, errno a la valeur EILSEQ, et retourne EILSEQde fonction.
_mbccpy_s n'ajoute pas une marque de fin null ; toutefois, si les points d' src à un caractère Null, ce null sont copiés vers dest (c'est une seule copie codée sur un octet normale).
La valeur de pCopied est remplie 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é, ce paramètre est ignoré.
src |
copié à dest |
pCopied |
Valeur de retour |
---|---|---|---|
thread-safe de sortie- octet |
thread-safe de sortie- octet |
1 |
0 |
0 |
0 |
1 |
0 |
octet de tête suivi de non-0 |
octet de tête suivi de non-0 |
2 |
0 |
octet de tête suivi de 0 |
0 |
1 |
EILSEQ |
Notez que la deuxième ligne est simplement un cas particulier du premier.Notez également que la table suppose le >= pCopiedd' buffSizeInBytes .
_mbccpy_s utilise les paramètres régionaux définis pour tout comportement dépendant des paramètres régionaux._mbccpy_s_l identique à _mbccpy_s sauf que les utilisations d' _mbccpy_s_l que les paramètres régionaux sont passées pour tout comportement dépendant des paramètres régionaux.
En C++, l'utilisation de ces fonctions est simplifié par des surcharges de modèle ; les surcharges peuvent également déduire la longueur de la mémoire tampon automatiquement, éliminant le besoin de spécifier un argument de taille.Pour plus d'informations, consultez Surcharges sécurisées de modèle.
Mappages de routines de texte générique
Routine de Tchar.h |
_UNICODE et non définis _MBCS |
_MBCS défini |
_UNICODE défini |
---|---|---|---|
_tccpy_s |
Mappage à la macro ou la fonction inline. |
_mbccpy_s |
Mappage à la macro ou la fonction inline. |
Configuration requise
Routine |
En-tête requis |
---|---|
_mbccpy_s |
<mbstring.h> |
_mbccpy_s_l |
<mbstring.h> |
Pour plus d'informations de compatibilité, consultez l' Compatibilité dans l'introduction.