wctomb_s, _wctomb_s_l
Converte um caractere largo ao caractere multibyte correspondente.Uma versão do wctomb, _wctomb_l com aprimoramentos de segurança sistema autônomo descrito em Aprimoramentos de segurança no CRT.
errno_t wctomb_s(
int *pRetValue,
char *mbchar,
size_t sizeInBytes,
wchar_t wchar
);
errno_t _wctomb_s_l(
int *pRetValue,
char *mbchar,
size_t sizeInBytes,
wchar_t wchar,
_locale_t locale
);
Parâmetros
[out] pRetValue
O número de bytes, ou um código que indica o resultado.[out] mbchar
O endereço de um caractere de multibyte.[in]sizeInBytes
dimensionar do buffer de mbchar.[in]wchar
Um caractere largo.[in]locale
A localidade para usar.
Valor de retorno
Zero se for bem-sucedido, um código de erro em caso de falha.
Condições de erro
mbchar |
sizeInBytes |
Valor de Retorno |
pRetValue |
---|---|---|---|
NULL |
>0 |
EINVAL |
não modificado |
any |
>INT_MAX |
EINVAL |
não modificado |
any |
muito pequeno |
EINVAL |
não modificado |
Se ocorrer qualquer uma das condições de erro acima, o manipulador de parâmetro inválido é chamado, conforme descrito em Validação de parâmetro. Se a execução for permitida para continuar, wctomb Retorna EINVAL e conjuntos errno para EINVAL.
Comentários
The wctomb_s função converte seu wchar argumento para os caractere multibyte correspondente e armazena o resultado no mbchar. Você pode chamar a função de qualquer local em qualquer programa.
If wctomb_s Converte caracteres largos em um caractere de vários bytes, ele coloca o número de bytes (que nunca é maior que MB_CUR_MAX) no caractere grande para o inteiro apontado por pRetValue. If wchar é o caractere nulo de caractere largo (L '\0') wctomb_s preenchimentos pRetValue com 1. Se o destino ponteiro mbchar for nulo, wctomb_s coloca o 0 no pRetValue. Se a conversão não for possível na localidade corrente, wctomb_s permite que – 1 pRetValue.
wctomb_s usa a localidade corrente para as informações de localidade dependente; _wctomb_s_l é idêntico, exceto pelo fato de que ele usa a localidade do passado em vez disso. For more information, see Localidade.
Requisitos
Rotina |
Cabeçalho necessário |
---|---|
wctomb_s |
<stdlib.h> |
_wctomb_s_l |
<stdlib.h> |
Para obter informações adicionais compatibilidade, consulte Compatibilidade na introdução.
Exemplo
Este programa ilustra o comportamento do wctomb função.
// crt_wctomb_s.cpp
#include <stdio.h>
#include <stdlib.h>
int main( void )
{
int i;
wchar_t wc = L'a';
char *pmb = (char *)malloc( MB_CUR_MAX );
printf_s( "Convert a wide character:\n" );
wctomb_s( &i, pmb, MB_CUR_MAX, wc );
printf_s( " Characters converted: %u\n", i );
printf_s( " Multibyte character: %.1s\n\n", pmb );
}
Convert a wide character: Characters converted: 1 Multibyte character: a
Equivalente do NET Framework
Não aplicável. Para telefonar a função C padrão, use PInvoke. Para obter mais informações, consulte Exemplos de invocação de plataforma.