Partager via


_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

Manipulation de chaînes (CRT)

_mbsnbcat, _mbsnbcat_l

_mbsnbcmp, _mbsnbcmp_l

_strncnt, _wcsncnt, _mbsnbcnt, _mbsnbcnt_l, _mbsnccnt, _mbsnccnt_l

_mbsnbicmp, _mbsnbicmp_l

_mbsnbset, _mbsnbset_l

strncpy, _strncpy_l, wcsncpy, _wcsncpy_l, _mbsncpy, _mbsncpy_l