_mbsnbcpy_s, _mbsnbcpy_s_l

 

Pour obtenir la dernière documentation sur Visual Studio 2017, consultez Documentation Visual Studio 2017.

Copie n octets d'une chaîne dans une chaîne de destination. Ces versions de _mbsnbcpy, _mbsnbcpy_l ont des améliorations de sécurité, comme décrit dans fonctionnalités de sécurité de la bibliothèque CRT.

System_CAPS_ICON_important.jpg 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 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 de la chaîne de caractères à copier.

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.

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

La fonction _mbsnbcpy_s copie count octets de strSource vers strDest. Si count dépasse la taille de strDest, soit 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 de paramètre . Si l’exécution est autorisée à se poursuivre, la fonction renvoie EINVAL. Si les chaînes de source et de destination se chevauchent, le comportement de _mbsnbcpy_s n’est pas défini.

La valeur de sortie est affectée par la définition de la LC_CTYPE catégorie de paramètres régionaux ; consultez setlocale pour plus d’informations. 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.

System_CAPS_ICON_note.jpg Remarque

Contrairement à la version non sécurisée de cette fonction, _mbsnbcpy_s ne pas faire tout remplissage null et toujours null termine la chaîne.

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 Secure Template Overloads.

Les versions debug de ces fonctions remplissent d'abord la mémoire tampon avec 0xFD. Pour désactiver ce comportement, utilisez _CrtSetDebugFillThreshold.

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
RoutineEn-tête requis
_mbsnbcpy_s<mbstring.h>
_mbsnbcpy_s_l<mbstring.h>

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

Non applicable. Pour appeler la fonction C standard, utilisez PInvoke. Pour plus d'informations, consultez Exemples d'appel de plateforme.

Manipulation de chaînes
_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

Afficher: