_mbccpy_s, _mbccpy_s_l
Copia um único caractere de multibyte de uma cadeia de caracteres para outra cadeia de caracteres.Essas são versões de _mbccpy, _mbccpy_l com aprimoramentos de segurança conforme descrito em Recursos de segurança no CRT.
Importante |
---|
Este API não pode ser usado em aplicativos executados em Tempo de Execução do Windows.Para obter mais informações, consulte Funções de CRT não suportadas com /ZW. |
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 impressão.[in] buffSizeInBytes
Tamanho do buffer de destino.[out] pCopied
Preenchido com o número de bytes copiados (1 ou 2 se bem-sucedida).Se você passar NULL se não importa com o número.[in] src
Caractere de Multibyte copiar.[in] locale
A localidade usar.
Valor de retorno
Zero se com êxito; um código de erro em caso de falha.Se src ou dest é NULL, ou se mais de bytes de buffSizeinBytes fossem copiadas para dest, então o manipulador inválido do parâmetro é chamado, como descrito em Validação de parâmetro.Se a execução é permitida continuar, funções EINVAL de retorno e errno são definidas como EINVAL.
Comentários
A função de _mbccpy_s copia um caractere de multibyte de src a dest.Se src não aponta para o byte inicial de um caractere de multibyte conforme determinado por uma chamada implícita a _ismbblead, o único byte para que os pontos de src são copiados.Se os pontos de src para um byte de início mas o seguinte é 0 bytes e assim inválido, então 0 são copiados para dest, errno é definido como EILSEQ, e retorna EILSEQde função.
_mbccpy_s não acrescenta nulo; um terminador no entanto, se aponta para um caractere nulo, seguida de que src do zero é copiado para dest (isso são apenas uma cópia normal de um byte.
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.Se NULL é passado, este parâmetro é ignorado.
src |
copiado para dest |
pCopied |
Valor de Retorno |
---|---|---|---|
não-ligação-byte |
não-ligação-byte |
1 |
0 |
0 |
0 |
1 |
0 |
byte inicial seguido por non-0 |
byte inicial seguido por non-0 |
2 |
0 |
byte inicial seguido por 0 |
0 |
1 |
EILSEQ |
Observe que a segunda linha é apenas um caso especial do primeiro.Também observe que a tabela do >= pCopiedde buffSizeInBytes .
_mbccpy_s usa a localidade atual para qualquer comportamento de são dependentes._mbccpy_s_l é idêntico a _mbccpy_s exceto que usa _mbccpy_s_l da localidade passados em para qualquer comportamento de são dependentes.
Em C++, usar essas funções é simplificada por sobrecargas de modelo; as sobrecargas podem interpretar o tamanho do buffer automaticamente, eliminando a necessidade para especificar um argumento de tamanho.Para obter mais informações, consulte Proteger Overloads de modelo.
Mapeamentos da rotina de Genérico- texto
Rotina de Tchar.h |
_UNICODE e não definidos _MBCS |
_MBCS definido |
_UNICODE definido |
---|---|---|---|
_tccpy_s |
Mapeados para a função macro ou embutido. |
_mbccpy_s |
Mapeados para a função macro ou embutido. |
Requisitos
Rotina |
Cabeçalho necessário |
---|---|
_mbccpy_s |
<mbstring.h> |
_mbccpy_s_l |
<mbstring.h> |
Para mais informações, consulte Compatibilidade de compatibilidade na introdução.