_mbccpy_s
, _mbccpy_s_l
Copier un caractère multioctet d’une chaîne vers une autre chaîne. Ces versions ont des améliorations de _mbccpy
_mbccpy_l
sécurité, comme décrit dans les fonctionnalités de sécurité du CRT.
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 dans les applications de la plateforme Windows universelle.
Syntaxe
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
dest
Destination de la copie.
buffSizeInBytes
Taille de la mémoire tampon de destination.
pCopied
Rempli avec le nombre d’octets copiés (1 ou 2 en cas de réussite). Transmettez NULL
si le nombre n’a pas d’importance.
src
Caractère multioctet à copier.
locale
Paramètres régionaux à utiliser.
Valeur retournée
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 d’octets buffSizeinBytes
sont copiés vers dest
, le gestionnaire de paramètres non valide est appelé, comme décrit dans la validation des paramètres. Si l’exécution est autorisée à continuer, les fonctions retournent EINVAL
et errno
sont définies sur EINVAL
.
Notes
La fonction _mbccpy_s
copie un caractère multioctet depuis src
vers dest
. S’il src
ne pointe pas vers l’octet de début d’un caractère multioctet tel qu’il est déterminé par un appel implicite à _ismbblead
, l’octet unique pointant src
vers lequel il pointe est copié. Si src
pointe vers un octet de prospect, mais que l’octet suivant est 0 et n’est donc pas valide, 0 est copié sur dest
, errno
est défini sur EILSEQ
, et la fonction retourne EILSEQ
.
_mbccpy_s
n’ajoute pas de terminateur Null ; toutefois, si src
elle pointe vers un caractère Null, cette valeur null est copiée dest
sur (en tant que copie d’un octet standard).
La valeur de pCopied
est remplie avec le nombre d’octets copiés. Les valeurs possibles sont 1 et 2 si l’opération réussit. Si NULL
est transmis, ce paramètre est ignoré.
src |
Copié vers dest |
pCopied |
Valeur retournée |
---|---|---|---|
Octet autre qu’un octet de tête | Octet autre qu’un octet de tête | 1 | 0 |
0 | 0 | 1 | 0 |
Octet de tête suivi d’une valeur différente de 0 | Octet de tête suivi d’une valeur différente de 0 | 2 | 0 |
Octet de tête suivi de 0 | 0 | 1 | EILSEQ |
La deuxième ligne n’est qu’un cas spécial de la première ligne. La table suppose buffSizeInBytes
>= pCopied
.
_mbccpy_s
utilise les paramètres régionaux actuels pour le comportement dépendant des paramètres régionaux. _mbccpy_s_l
est identique à _mbccpy_s
, à ceci près que _mbccpy_s_l
utilise les paramètres régionaux passés pour 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 automatiquement la longueur de la mémoire tampon, ce qui évite d’avoir à spécifier un argument de taille. Pour plus d'informations, consultez Sécuriser les surcharges de modèle.
Par défaut, l’état global de cette fonction est limité à l’application. Pour modifier ce comportement, consultez État global dans le CRT.
Mappages de routines de texte générique
Routine Tchar.h | _UNICODE et _MBCS non définis |
_MBCS défini |
_UNICODE défini |
---|---|---|---|
_tccpy_s |
Mappe à la macro ou à la fonction inline. | _mbccpy_s |
Mappe à la macro ou à la fonction inline. |
Spécifications
Routine | En-tête requis |
---|---|
_mbccpy_s |
<mbstring.h> |
_mbccpy_s_l |
<mbstring.h> |
Pour plus d’informations sur la compatibilité, consultez Compatibility.
Voir aussi
Paramètres régionaux
Interprétation des séquences de caractères multioctets
_mbclen
, , mblen
_mblen_l