Share via


mbsrtowcs

Converte uma seqüência de caractere multibyte em uma seqüência de caractere largos correspondente.Uma versão mais segura desta função está disponível; consulte mbsrtowcs.

size_t mbsrtowcs(
   wchar_t *wcstr,
   const char **mbstr,
   sizeof count,
   mbstate_t *mbstate
);
template <size_t size>
size_t mbsrtowcs(
   wchar_t (&wcstr)[size],
   const char **mbstr,
   sizeof count,
   mbstate_t *mbstate
); // C++ only

Parâmetros

  • [out] wcstr
    O resultante convertido caractere largo endereço local da cadeia de caracteres.

  • [in]mbstr
    Indiretamente aponta para o local da seqüência de caractere multibyte a ser convertido.

  • [in]count
    O número de caractere a ser convertido.

  • [in]mbstate
    Um ponteiro para um mbstate_t objeto de estado de conversão.

Valor de retorno

Retorna o número de palavras convertido com êxito, não incluindo nulo de terminação palavra nula (se houver), caso contrário, -1 se tiver ocorrido um erro.

Comentários

The mbsrtowcs função converte uma seqüência de caracteres multibyte, começando no estado de conversão especificada contido no mbstate, dos valores indiretos apontados no mbstr, no endereço de wcstr. Continuará a conversão para cada caractere até: Após um valor nulo caracteres multibyte de terminação é encontrado, quando um caractere correspondente não for encontrado ou quando o próximo caractere excederia o limite contido em count. If mbsrtowcs encontra o caractere nulo multibyte ('\0') antes ou quando count ocorre, ele converte para nulo 16 bit caractere e pára de terminação.

Assim, a seqüência de caracteres larga em wcstr é terminada com nulo somente se mbsrtowcs encontrar um caractere nulo multibyte durante a conversão. Se as seqüências apontada por mbstr e wcstr se sobrepõem, o comportamento do mbsrtowcs não está definida. mbsrtowcs é afetado pela categoria do LC_TYPE da localidade corrente.

The mbsrtowcs função difere mbstowcs, _mbstowcs_l por sua capacidade de reinicialização. O estado de conversão é armazenado em mbstate para chamadas subseqüentes para o mesmo ou Outros funções reinicializáveis. Os resultados são indefinidos ao misturar o uso de funções nonrestartable e reinicializáveis.Por exemplo, um aplicativo utilize mbsrlen em vez de mbslen, se uma telefonar subseqüente para mbsrtowcs Quando usado em vez de mbstowcs.

Se o wcstr o argumento é NULL, mbsrtombs Retorna o dimensionar necessário em palavras da cadeia de caracteres de destino. If mbstate for nulo, o interno mbstate_t conversão de estado é usado. Se o caractere de sequênciawchar não tem um correspondente multibyte representação de caracteres, -1 é retornado e a errno é definido como EILSEQ.

If mbstr é NULL, o manipulador de parâmetro inválido é chamado, conforme descrito em Validação de parâmetro. Se a execução for permitida para continuar, essa função define errno para EINVAL e retorna -1.

No C++, essa função tem uma sobrecarga de modelo que invoca a contraparte mais recente e segura dessa função.Para obter mais informações, consulte Proteger overloads de modelo.

Exceções

The mbsrtowcs função é safe com vários threads sistema autônomo longo sistema autônomo nenhuma função nas chamadas de thread corrente setlocale durante a execução dessa função e o mbstate é nulo.

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.

Requisitos

Rotina

Cabeçalho necessário

mbsrtowcs

<wchar.h>

Consulte também

Referência

Conversão de Dados

Localidade

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

mbrtowc

mbtowc, _mbtowc_l

mbstowcs, _mbstowcs_l

mbsinit