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