Compartilhar via


_mbsnbcpy, _mbsnbcpy_l

Copiar n bytes de uma cadeia de caracteres para uma cadeia de caracteres de destino. Versões mais seguras dessas funções estão disponíveis — consulte _mbsnbcpy_s, _mbsnbcpy_s_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

unsigned char * _mbsnbcpy(
   unsigned char * strDest,
   const unsigned char * strSource,
   size_t count
);
unsigned char * _mbsnbcpy_l(
   unsigned char * strDest,
   const unsigned char * strSource,
   size_t count,
   _locale_t locale
);
template <size_t size>
unsigned char * _mbsnbcpy(
   unsigned char (&strDest)[size],
   const unsigned char * strSource,
   size_t count
); // C++ only
template <size_t size>
unsigned char * _mbsnbcpy_l(
   unsigned char (&strDest)[size],
   const unsigned char * strSource,
   size_t count,
   _locale_t locale
); // C++ only

Parâmetros

strDest
Destino para a cadeia de caracteres a ser copiada.

strSource
Cadeia de caracteres a ser copiada.

count
Número de bytes a serem copiados.

locale
Localidade a usar.

Valor retornado

_mbsnbcpy retorna um ponteiro para a cadeia de caracteres de destino. Nenhum valor retornado é reservado para indicar um erro.

Comentários

A função _mbsnbcpy copia count bytes de strSource para strDest. Se count excede o tamanho de strDest ou as cadeias de caracteres de origem e de destino se sobrepõem, o comportamento de _mbsnbcpy é indefinido.

Se strSource or strDest for um ponteiro nulo, essa função invocará o manipulador de parâmetro inválido, conforme descrito em Validação de parâmetro. Se a execução puder continuar, a função retornará NULL e definirá errno como EINVAL.

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 as que não têm o _l sufixo usam a localidade atual e as versões que têm o _l sufixo usam o parâmetro locale passado. Para obter mais informações, consulte Localidade.

Importante

Essas funções podem ser vulneráveis a ameaças de estouro de buffer. As saturações de buffer podem ser usadas para executar código arbitrário do invasor, que pode resultar na elevação de privilégio sem garantia e comprometer o sistema. Para obter mais informações, confira Como evitar sobrecargas de buffer.

Em C++, essas funções têm sobrecargas de modelo que invocam os equivalentes mais recentes e mais seguros dessas funções. Para obter mais informações, consulte Sobrecargas de modelo seguras.

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

Mapeamentos de rotina de texto genérico

Rotina Tchar.h _UNICODE e _MBCS não definidos _MBCS definido _UNICODE definido
_tcsncpy strncpy _mbsnbcpy wcsncpy
_tcsncpy_l _strncpy_l _mbsnbcp_l _wcsncpy_l

Requisitos

Rotina Cabeçalho necessário
_mbsnbcpy <mbstring.h>
_mbsnbcpy_l <mbstring.h>

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

Confira também

Manipulação de cadeia de caracteres
_mbsnbcat, _mbsnbcat_l
_mbsnbcmp, _mbsnbcmp_l
_strncnt, _wcsncnt, _mbsnbcnt, _mbsnbcnt_l, _mbsnccnt, , _mbsnccnt_l
_mbsnbset, _mbsnbset_l
strncpy, _strncpy_l, wcsncpy, _wcsncpy_l, _mbsncpy, , _mbsncpy_l