_mbsnbcpy_s, _mbsnbcpy_s_l
Copie des octets d' n d'une chaîne à une chaîne de destination.Ce sont des versions de _mbsnbcpy, _mbsnbcpy_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 _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 pour que la chaîne de caractères est copiée.sizeInBytes
Taille de mémoire tampon de destination.strSource
Chaîne de caractères à copier.count
Nombre d'octets à copier.locale
Paramètres régionaux à utiliser.
Valeur de retour
Zéro si l'opération a réussi ; EINVAL si un paramètre incorrect a été passé.
Notes
La fonction d' _mbsnbcpy_s copie des octets d' count d' strSource à strDest.Si count dépasse la taille d' strDest, ou des chaînes d'entrée est un pointeur null, ou sizeInBytes ou count est 0, la fonction appelle le gestionnaire de paramètre non valide comme décrit dans Validation des paramètres .Si est autorisé à l'exécution pour continuer, la fonction retourne EINVAL.Si la source et les chaînes de destination se chevauchent, le comportement d' _mbsnbcpy_s est pas défini.
La valeur de sortie est affectée par la configuration de la définition de catégorie d' LC_CTYPE des paramètres régionaux ; consultez l' setlocale pour plus d'informations.Les versions de ces fonctions sans suffixe d' _l utilisent les paramètres régionaux définis pour ce comportement dépendant des paramètres régionaux ; les versions avec le suffixe d' _l sont identiques sauf qu'elles utilisent le paramètre de paramètres régionaux passé à la place.Pour plus d'informations, consultez Paramètres régionaux.
[!REMARQUE]
Contrairement à la version non sécurisée de cette fonction, _mbsnbcpy_s n'offre aucune marge intérieure null et toujours la fin de la chaîne.
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) et peuvent remplacer automatiquement des fonctions plus anciennes et non sécurisées par leurs nouvelles, sécurisées équivalents.Pour plus d'informations, consultez Surcharges sécurisées de modèle.
Les versions debug de ces fonctions exécutent d'abord mémoire tampon de 0xFD.Pour désactiver ce comportement, utilisez _CrtSetDebugFillThreshold.
Mappages de routines de texte générique
Routine de Tchar.h |
_UNICODE et non définis _MBCS |
_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 |
Configuration requise
Routine |
En-tête requis |
---|---|
_mbsnbcpy_s |
<mbstring.h> |
_mbsnbcpy_s_l |
<mbstring.h> |
Pour plus d'informations de compatibilité, consultez l' Compatibilité dans l'introduction.
Équivalent .NET Framework
Non applicable. Pour appeler la fonction C standard, utilisez PInvoke. Pour plus d'informations, consultez l' Exemples d'appel de code non managé.
Voir aussi
Référence
_strncnt, _wcsncnt, _mbsnbcnt, _mbsnbcnt_l, _mbsnccnt, _mbsnccnt_l
strncpy, _strncpy_l, wcsncpy, _wcsncpy_l, _mbsncpy, _mbsncpy_l