Compartilhar via


_mbsnbcpy_s, _mbsnbcpy_s_l

Copiar n bytes de uma cadeia de caracteres para uma cadeia de caracteres de destino. Essas versões do , _mbsnbcpy_ltêm aprimoramentos de_mbsnbcpy segurança, conforme descrito em Recursos de segurança no CRT.

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 _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

Parâmetros

strDest
Destino para a cadeia de caracteres a ser copiada.

sizeInBytes
O tamanho do buffer de destino.

strSource
Cadeia de caracteres a ser copiada.

count
Número de bytes a serem copiados.

locale
Localidade a usar.

Valor retornado

Zero se tiver êxito, EINVAL se um parâmetro inválido foi passado.

Comentários

A função _mbsnbcpy_s copia count bytes de strSource para strDest. Se count exceder o tamanho de , qualquer uma das cadeias de caracteres de entrada for um ponteiro nulo ou sizeInBytes for count 0, a função invocará o manipulador de parâmetro inválido, conforme descrito em Validação de strDestparâmetro. Se a execução puder continuar, a função retornará EINVAL. Se as cadeias de caracteres de origem e de destino se sobrepõem, o comportamento de _mbsnbcpy_s é 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 sem o sufixo _l usam a localidade atual desse comportamento dependente da localidade. As versões com o sufixo _l são idênticas, exceto por usarem o parâmetro de localidade passado em seu lugar. Para obter mais informações, consulte Localidade.

Observação

Diferente da versão não segura dessa função, o _mbsnbcpy_s não faz nenhum preenchimento nulo e o nulo sempre termina a cadeia de caracteres.

Em C++, o uso dessas funções é simplificado pelas sobrecargas de modelo; as sobrecargas podem inferir o tamanho do buffer automaticamente (eliminando a necessidade de especificar um argumento de tamanho) e podem substituir automaticamente funções mais antigas e não seguras por suas equivalentes mais recentes e 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, 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_s _strncpy_s _mbsnbcpy_s _wcsncpy_s
_tcsncpy_s_l _strncpy_s_l _mbsnbcpy_s_l _wcsncpy_s_l

Requisitos

Rotina Cabeçalho necessário
_mbsnbcpy_s <mbstring.h>
_mbsnbcpy_s_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
_mbsnbicmp, _mbsnbicmp_l
_mbsnbset, _mbsnbset_l
strncpy, _strncpy_l, wcsncpy, _wcsncpy_l, _mbsncpy, , _mbsncpy_l