Compartilhar via


_mbsnbcpy_s, _mbsnbcpy_s_l

Copia n bytes de uma cadeia de caracteres para uma cadeia de caracteres de destino. Essas versões de _mbsnbcpy, _mbsnbcpy_l têm aprimoramentos de segurança, como descrito em Recursos de segurança no CRT.

Importante

Esta API não pode ser usada em aplicativos que executam no Tempo de Execução do Windows.Para obter mais informações, consulte Funções CRT sem suporte pelo /ZW.

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 da cadeia de caracteres a ser copiada.

  • sizeInBytes
    Tamanho do buffer de destino.

  • strSource
    Cadeia de caracteres a ser copiada.

  • count
    Número de bytes a serem copiados.

  • locale
    Localidade a ser usada.

Valor de retorno

Zero se com ê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 strDest, uma as cadeias de caracteres de entrada for um ponteiro nulo, ou sizeInBytes ou count for 0, a função chamará o manipulador de parâmetro inválido conforme descrito em Validação do parâmetro. Se a execução puder continuar, a função retornará EINVAL. Se as cadeias de caracteres de origem e de destino se sobrepuserem, o comportamento de _mbsnbcpy_s será indefinido.

O valor de saída é afetado pela configuração da categoria LC_CTYPE de localidade. Para obter mais informações, consulte setlocale. As versões dessas funções sem o sufixo _l usam a localidade atual para esse comportamento dependente da localidade; as versões com o sufixo _l são idênticas, exceto que elas usam o parâmetro de localidade informado. Para obter mais informações, consulte Localidade.

Dica

Ao contrário da versão não segura dessa função, _mbsnbcpy_s não faz nenhum preenchimento de nulo e nulo sempre encerra a cadeia de caracteres.

No C++, o uso dessas funções é simplificado por sobrecargas de modelo; as sobrecargas podem interpretar o tamanho do buffer automaticamente (eliminando a necessidade de especificar um argumento de tamanho) e podem substituir automaticamente as funções menos seguras mais antigas por correspondentes mais seguras e mais recentes. Para obter mais informações, consulte Sobrecargas de modelo seguras.

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

Mapeamentos da 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 mais informações sobre compatibilidade, consulte Compatibilidade.

Equivalência do .NET Framework

Não aplicável. Para chamar a função padrão de C, use PInvoke. Para obter mais informações, consulte Exemplos de chamadas de plataformas.

Consulte também

Referência

Manipulação da cadeia de caracteres (CRT)

_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