Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Copier un caractère multioctet d’une chaîne vers une autre chaîne. Ces versions ont des améliorations de _mbccpy _mbccpy_lsé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 EINVALet 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