Partager via


_mbsnbcat_s, _mbsnbcat_s_l

Ajoute à une chaîne de caractères multioctets, au plus, le premier n octets d’une autre chaîne de caractères multioctets. Ces fonctions sont des versions de , qui ont des améliorations de_mbsnbcat sécurité, comme décrit dans les fonctionnalités de sécurité dans le CRT. _mbsnbcat_l

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 _mbsnbcat_s(
   unsigned char *dest,
   size_t sizeInBytes,
   const unsigned char *src,
   size_t count
);
errno_t _mbsnbcat_s_l(
   unsigned char *dest,
   size_t sizeInBytes,
   const unsigned char *src,
   size_t count,
   _locale_t locale
);
template <size_t size>
errno_t _mbsnbcat_s(
   unsigned char (&dest)[size],
   const unsigned char *src,
   size_t count
); // C++ only
template <size_t size>
errno_t _mbsnbcat_s_l(
   unsigned char (&dest)[size],
   const unsigned char *src,
   size_t count,
   _locale_t locale
); // C++ only

Paramètres

dest
Chaîne de destination à caractères multioctets se terminant par un caractère null.

sizeInBytes
Taille de la mémoire tampon dest en octets.

src
Chaîne source à caractères multioctets se terminant par un caractère null.

count
Nombre d'octets de src à ajouter à dest.

locale
Paramètres régionaux à utiliser.

Valeur retournée

Zéro en cas de réussite ; code d'erreur dans un autre cas.

Conditions d’erreur

dest sizeInBytes src Valeur retournée
NULL n'importe laquelle tous EINVAL
Quelconque <= 0 n'importe laquelle EINVAL
Quelconque n'importe laquelle NULL EINVAL

Si l’une des conditions d’erreur se produit, la fonction génère une erreur de paramètre non valide, comme décrit dans la validation des paramètres. Si l'erreur est gérée, la fonction retourne EINVAL et attribue à errno la valeur EINVAL.

Notes

La fonction _mbsnbcat_s ajoute à dest, au plus, les count premiers octets de src. Si l’octet qui précède immédiatement le caractère Null est dest un octet de prospect, il est remplacé par l’octet initial de src. Dans le cas contraire, l'octet initial de src remplace le caractère null de fin de dest. Si un octet null apparaît dans src avant l'ajout de count octets, _mbsnbcat_s ajoute tous les octets de src, jusqu'au caractère null. Si la valeur count est supérieure à la longueur de src, la longueur de src est utilisée à la place de count. La chaîne obtenue se termine par un caractère null. Si la copie se produit entre des chaînes qui se chevauchent, le comportement est indé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 sont identiques, sauf que celles qui n'ont pas le suffixe _l utilisent les paramètres régionaux actuels et celles qui ont le suffixe _l utilisent à la place les paramètres régionaux qui ont été passés. Pour plus d’informations, consultez Locale.

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 élimine la nécessité de spécifier un argument de taille, et elles peuvent utiliser automatiquement les fonctions plus récentes et plus sécurisées pour remplacer les fonctions plus anciennes et moins 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
_tcsncat_s strncat_s _mbsnbcat_s wcsncat_s
_tcsncat_s_l _strncat_s_l _mbsnbcat_s_l _wcsncat_s_l

Spécifications

Routine En-tête requis
_mbsnbcat_s <mbstring.h>
_mbsnbcat_s_l <mbstring.h>

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

Voir aussi

Manipulation de chaînes
_mbsnbcmp, _mbsnbcmp_l
_strncnt, , _wcsncnt, _mbsnbcnt_l_mbsnbcnt, , _mbsnccnt_mbsnccnt_l
_mbsnbcpy, _mbsnbcpy_l
_mbsnbcpy_s, _mbsnbcpy_s_l
_mbsnbset, _mbsnbset_l
strncat, , _strncat_l, _wcsncat_lwcsncat, , _mbsncat_mbsncat_l
strncat_s, , _strncat_s_l, _wcsncat_s_lwcsncat_s, , _mbsncat_s_mbsncat_s_l