Compartilhar via


_mbccpy_s, _mbccpy_s_l

Copia um único caractere multibyte de uma seqüência de caracteres a outra seqüência de caracteres.Essas são sistema autônomo versões de _mbccpy, _mbccpy_l com aprimoramentos de segurança conforme descrito em Aprimoramentos de segurança no CRT.

errno_t _mbccpy_s(
   unsigned char *dest,
   size_t buffSizeInBytes,
   int * pCopied,
   const unsigned char *src 
);
errno_t _mbccpy_s_l(
   unsigned char *dest,
   size_t buffSizeInBytes,
   int * pCopied,
   const unsigned char *src,
   locale_t locale
);
template <size_t size>
errno_t _mbccpy_s(
   unsigned char (&dest)[size],
   int * pCopied,
   const unsigned char *src 
); // C++ only
template <size_t size>
errno_t _mbccpy_s_l(
   unsigned char (&dest)[size],
   int * pCopied,
   const unsigned char *src,
   locale_t locale
); // C++ only

Parâmetros

  • [out] dest
    Destino de cópia.

  • [in]buffSizeInBytes
    dimensionar do buffer de destino.

  • [out] pCopied
    Preenchido com o número de bytes copiados (1 ou 2 se for bem-sucedido).Passar NULL Se você não se preocupa com o número.

  • [in]src
    caractere multibyte para copiar.

  • [in]locale
    Localidade usar.

Valor de retorno

Zero se for bem-sucedida; um código de erro em caso de falha.If src ou dest é NULL, ou se mais de buffSizeinBytes bytes seriam copiados para dest, e, em seguida, o manipulador de parâmetro inválido é invocado, sistema autônomo descrito em Validação de parâmetro. Se a execução for permitida para continuar, as funções retornam EINVAL e errno é conjunto para EINVAL.

Comentários

The _mbccpy_s função copia multibyte um caractere de src para dest. If src não aponta para o byte inicial de um caractere multibyte sistema autônomo determinado por uma telefonar de implícita _ismbbleade, em seguida, o único byte que src pontos de é copiado. If src aponta para um byte inicial, mas o byte seguinte é 0 e, portanto, inválido, em seguida, 0 é copiado para dest, errno é conjunto para EILSEQ, e a função retorna EILSEQ.

_mbccpy_s não acrescentar um terminador nulo; no entanto, se src aponta para um caractere nulo, e, em seguida, esse nulo é copiado para dest (isso é apenas uma cópia de um byte regular).

O valor em pCopied é preenchido com o número de bytes copiados. Os valores possíveis são 1 e 2 se a operação for bem-sucedida.If NULL é passado, esse parâmetro é ignorado.

src

copiado para dest

pCopied

Valor de Retorno

cliente potencial byte

cliente potencial byte

1

0

0

0

1

0

seguido de não-0-byte inicial

seguido de não-0-byte inicial

2

0

byte inicial seguido por 0

0

1

EILSEQ

Observe que a segunda linha é apenas um caso especial do primeiro.Observe também que a tabela assume buffSizeInBytes>= pCopied.

_mbccpy_s usa a localidade corrente para qualquer comportamento dependente de localidade. _mbccpy_s_l é idêntico ao _mbccpy_s exceto pelo fato de que _mbccpy_s_l usa a localidade passada para qualquer comportamento dependente de localidade.

No C++, usando essas funções é simplificado pela sobrecargas de modelo; sobrecargas de podem inferir comprimento do buffer automaticamente, eliminando a necessidade de especificar um argumento de dimensionar.For more information, see Proteger overloads de modelo.

Mapeamentos de rotina de texto genérica

Rotina tchar.h

_UNICODE e _MBCS não definido

_MBCS definido

_UNICODE definido

_tccpy_s

Mapas de macro ou função in-line.

_mbccpy_s

Mapas de macro ou função in-line.

Requisitos

Rotina

Cabeçalho necessário

_mbccpy_s

<mbctype.h>

_mbccpy_s_l

<mbctype.h>

Para obter mais informações de compatibilidade, consulte Compatibilidade na introdução.

Consulte também

Referência

Localidade

Interpretação de seqüências de caractere multibyte

_mbclen mblen, _mblen_l