Partager via


_mbsnbcpy_s, _mbsnbcpy_s_l

Copie n octets d’une chaîne vers une chaîne de destination. Ces versions ont des améliorations de _mbsnbcpy _mbsnbcpy_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 _mbsnbcpy_s(
   unsigned char * strDest,
   size_t sizeInBytes,
   const unsigned char * strSource,
   size_t count
);
errno_t _mbsnbcpy_s_l(
   unsigned char * strDest,
   size_t sizeInBytes,
   const unsigned char * strSource,
   size_t count,
   _locale_t locale
);
template <size_t size>
errno_t _mbsnbcpy_s(
   unsigned char (&strDest)[size],
   const unsigned char * strSource,
   size_t count
); // C++ only
template <size_t size>
errno_t _mbsnbcpy_s_l(
   unsigned char (&strDest)[size],
   const unsigned char * strSource,
   size_t count,
   _locale_t locale
); // C++ only

Paramètres

strDest
Destination de la chaîne de caractères à copier.

sizeInBytes
Mémoire tampon de destination.

strSource
Chaîne de caractères à copier.

count
Nombre d'octets à copier.

locale
Paramètres régionaux à utiliser.

Valeur retournée

Zéro si l’opération réussit ; EINVAL si un paramètre incorrect a été passé.

Notes

La fonction _mbsnbcpy_s copie count octets de strSource vers strDest. Si count elle dépasse la taille strDest, l’une des chaînes d’entrée est un pointeur Null ou sizeInBytes count est 0, la fonction appelle le gestionnaire de paramètres non valide, comme décrit dans la validation des paramètres. Si l’exécution est autorisée à se poursuivre, la fonction retourne EINVAL. Si les chaînes source et de destination se chevauchent, le comportement de _mbsnbcpy_s n’est pas défini.

La valeur de la sortie est affectée par la valeur du paramètre de la catégorie LC_CTYPE des paramètres régionaux. Pour plus d’informations, consultez setlocale. Les versions de ces fonctions sans le suffixe _l utilisent les paramètres régionaux pour ce comportement dépendant des paramètres régionaux ; les versions avec le suffixe _l sont identiques, sauf qu'elles utilisent à la place les paramètres régionaux transmis. Pour plus d’informations, consultez Locale.

Remarque

Contrairement à la version non sécurisée de cette fonction, _mbsnbcpy_s n’effectue aucun remplissage de caractères Null et termine toujours la chaîne par un caractère Null.

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 (ce qui évite d’avoir à spécifier un argument taille) et peuvent remplacer automatiquement les fonctions plus anciennes et non sécurisées par leurs équivalentes plus récentes et sécurisées. Pour plus d'informations, consultez Sécuriser les surcharges de modèle.

Les versions de bibliothèque de débogage de ces fonctions remplissent d’abord la mémoire tampon avec 0xFE. Pour désactiver ce comportement, utilisez _CrtSetDebugFillThreshold.

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
_tcsncpy_s _strncpy_s _mbsnbcpy_s _wcsncpy_s
_tcsncpy_s_l _strncpy_s_l _mbsnbcpy_s_l _wcsncpy_s_l

Spécifications

Routine En-tête requis
_mbsnbcpy_s <mbstring.h>
_mbsnbcpy_s_l <mbstring.h>

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

Voir aussi

Manipulation de chaînes
_mbsnbcat, _mbsnbcat_l
_mbsnbcmp, _mbsnbcmp_l
_strncnt, , _wcsncnt, _mbsnbcnt_l_mbsnbcnt, , _mbsnccnt_mbsnccnt_l
_mbsnbicmp, _mbsnbicmp_l
_mbsnbset, _mbsnbset_l
strncpy, , _strncpy_l, _wcsncpy_lwcsncpy, , _mbsncpy_mbsncpy_l