Share via


_mbsnbcat_s, _mbsnbcat_s_l

Acrescenta a uma cadeia de caracteres multibyte, no máximo, os primeiros n bytes de outra cadeia de caracteres multibyte. Essas funções são versões do , que têm aprimoramentos de segurança, conforme descrito em Recursos de _mbsnbcatsegurança na CRT. _mbsnbcat_l

Importante

Esta API não pode ser usada em aplicativos executados no Windows Runtime. Para obter mais informações, confira Funções do CRT sem suporte em aplicativos da Plataforma Universal do Windows.

Sintaxe

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
Cadeia de caracteres de destino de caractere multibyte terminada em nulo.

sizeInBytes
O tamanho do buffer dest em bytes.

src
Cadeia de caracteres de origem de caractere multibyte terminada em nulo.

count
Número de bytes do src para acrescentar a dest.

locale
Localidade a usar.

Retornar valor

Zero se for bem-sucedido, caso contrário, um código de erro.

Condições de erro

dest sizeInBytes src Retornar valor
NULL qualquer qualquer EINVAL
Qualquer <= 0 qualquer EINVAL
Qualquer qualquer NULL EINVAL

Se qualquer uma das condições de erro ocorrer, a função gerará um erro de parâmetro inválido, conforme descrito em Validação de parâmetro. Se o erro for tratado, a função retornará EINVAL e definirá errno como EINVAL.

Comentários

A função _mbsnbcat_s acrescenta a dest, no máximo, os primeiros count bytes de src. Se o byte imediatamente anterior ao caractere nulo em dest for um byte inicial, ele será substituído pelo byte inicial de src. Caso contrário, o byte inicial de src substitui o caractere nulo de terminação de dest. Se aparecer um byte nulo no src antes de count bytes serem acrescentados, _mbsnbcat_s acrescentará todos os bytes de src, até o caractere nulo. Se count for maior que o comprimento de src, o comprimento de src será usado no lugar de count. A cadeia de caracteres resultante é terminada por um caractere nulo. Se ocorrer cópia entre cadeias de caracteres que se sobrepõem, o comportamento será indefinido.

O valor de saída é afetado pela configuração da categoria LC_CTYPE da localidade. Para obter mais informações, consulte setlocale. As versões dessas funções são idênticas, exceto que aquelas que não têm o sufixo _l usam a localidade atual e as com um sufixo _l usam o parâmetro de localidade informado. Para obter mais informações, consulte Localidade.

No C++, o uso dessas funções é simplificado por sobrecargas de modelo. As sobrecargas podem inferir o comprimento do buffer automaticamente, o que elimina a necessidade de especificar um argumento de tamanho, e podem usar automaticamente as funções mais novas e mais seguras para substituir funções mais antigas e menos seguras. Para obter mais informações, consulte Sobrecargas de modelo seguras.

As versões de biblioteca de depuração dessas funções preenchem o buffer com 0xFE. Para desabilitar esse comportamento, use _CrtSetDebugFillThreshold.

Por padrão, o estado global dessa função tem como escopo o aplicativo. Para alterar esse comportamento, consulte Estado global na CRT.

Mapeamentos de rotina de texto genérico

Rotina Tchar.h _UNICODE e _MBCS não 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

Rotina Cabeçalho necessário
_mbsnbcat_s <mbstring.h>
_mbsnbcat_s_l <mbstring.h>

Para obter informações sobre compatibilidade, consulte Compatibilidade.

Confira também

Manipulação de cadeia de caracteres
_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