_mbsnbcat_s
, _mbsnbcat_s_l
Anexa a una cadena de caracteres multibyte, como máximo, los primeros n bytes de otra cadena de caracteres multibyte. Estas funciones son versiones de _mbsnbcat
, _mbsnbcat_l
que tienen mejoras de seguridad, como se describe en Características de seguridad de CRT.
Importante
Esta API no se puede usar en aplicaciones que se ejecutan en Windows en tiempo de ejecución. Para obtener más información, vea Funciones de CRT no admitidas en aplicaciones de la Plataforma universal de Windows.
Sintaxis
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
Parámetros
dest
Cadena de destino de caracteres multibyte terminada en NULL.
sizeInBytes
Tamaño del búfer dest
en bytes.
src
Cadena de origen de caracteres multibyte terminada en NULL.
count
Número de bytes de src
que se van a anexar a dest
.
locale
Configuración regional que se va a usar.
Valor devuelto
Cero si es correcto; en caso contrario, código de error.
Condiciones del error
dest |
sizeInBytes |
src |
Valor devuelto |
---|---|---|---|
NULL |
cualquiera | cualquiera | EINVAL |
Any | <= 0 | cualquiera | EINVAL |
Any | cualquiera | NULL |
EINVAL |
Si se produce alguna de las condiciones de error, la función genera un error de parámetro no válido, como se describe en Validación de parámetros. Si se controla el error, la función devuelve EINVAL
y establece errno
en EINVAL
.
Comentarios
La función _mbsnbcat_s
anexa a dest
, como máximo, los primeros bytes count
de src
. Si el byte que precede inmediatamente al carácter nulo en dest
es un byte inicial, lo sobrescribe el byte inicial de src
. De lo contrario, el byte inicial de src
sobrescribe el carácter nulo de terminación de dest
. Si hay un byte nulo en src
antes de que se anexen count
bytes, _mbsnbcat_s
anexa todos los bytes de src
, hasta el carácter nulo. Si count
es mayor que la longitud de src
, se usa la longitud de src
en lugar de count
. La cadena resultante se termina con un carácter nulo. Si la copia tiene lugar entre cadenas que se superponen, el comportamiento es indefinido.
El valor de salida se ve afectado por el valor de la categoría LC_CTYPE
de la configuración regional. Para obtener más información, vea setlocale
. Las versiones de estas funciones son idénticas, salvo que las que no tienen el sufijo _l
usan la configuración regional actual y las que tienen el sufijo _l
usan el parámetro de configuración regional que se pasa. Para obtener más información, vea Locale.
En C++, las sobrecargas de plantilla simplifican el uso de estas funciones. Las sobrecargas pueden deducir automáticamente la longitud del búfer, lo que elimina la necesidad de especificar un argumento de tamaño y pueden usar automáticamente las funciones más recientes y seguras para reemplazar las funciones más antiguas y menos seguras. Para obtener más información, consulte Sobrecargas de plantilla seguras.
Las versiones de la biblioteca de depuración de estas funciones rellenan primero el búfer con 0xFE. Para deshabilitar este comportamiento, use _CrtSetDebugFillThreshold
.
De manera predeterminada, el estado global de esta función está limitado a la aplicación. Para cambiar este comportamiento, consulte Estado global en CRT.
Asignaciones de rutinas de texto genérico
Rutina Tchar.h |
_UNICODE y _MBCS no definidos |
_MBCS definido |
_UNICODE definido |
---|---|---|---|
_tcsncat_s |
strncat_s |
_mbsnbcat_s |
wcsncat_s |
_tcsncat_s_l |
_strncat_s_l |
_mbsnbcat_s_l |
_wcsncat_s_l |
Requisitos
Routine | Encabezado necesario |
---|---|
_mbsnbcat_s |
<mbstring.h> |
_mbsnbcat_s_l |
<mbstring.h> |
Para obtener más información sobre compatibilidad, consulte Compatibilidad.
Consulte también
Manipulación de cadenas
_mbsnbcmp
, _mbsnbcmp_l
_strncnt
, _wcsncnt
, _mbsnbcnt
, _mbsnbcnt_l
, , _mbsnccnt
, _mbsnccnt_l
_mbsnbcpy
, _mbsnbcpy_l
_mbsnbcpy_s
, _mbsnbcpy_s_l
_mbsnbset
, _mbsnbset_l
strncat
, _strncat_l
, wcsncat
, _wcsncat_l
, , _mbsncat
, _mbsncat_l
strncat_s
, _strncat_s_l
, wcsncat_s
, _wcsncat_s_l
, , _mbsncat_s
, _mbsncat_s_l