Partager via


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

Voir aussi

Référence

Paramètres régionaux

Interprétation des séquences de caractères multioctets

_mbclen, mblen, _mblen_l