Condividi tramite


mbsrtowcs

Converte una stringa di caratteri multibyte a una stringa corrispondente i caratteri di tipo " wide ".Una versione più sicura di questa funzione è disponibile; vedere 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

Parametri

  • [out] wcstr
    La posizione relativa stringa di caratteri estesi convertita risultante.

  • [in] mbstr
    Indirettamente punti al percorso della stringa di caratteri multibyte da convertire.

  • [in] count
    Il numero di caratteri da convertire.

  • [in] mbstate
    Un puntatore a un oggetto mbstate_t oggetto stato di conversione.

Valore restituito

Restituisce il numero delle parole correttamente convertito, escluso la parola null di terminazione null (se presenti), in caso contrario di un -1 se si è verificato un errore.

Note

mbsrtowcs la funzione converte una stringa di caratteri multibyte, a partire dallo stato specificato di conversione contenuto in mbstate, quindi aguzzo indiretto di valori in mbstr, l'indirizzo di wcstr.la conversione continuerà per ogni carattere fino a: dopo che un carattere multibyte di terminazione null viene rilevato, quando un carattere non concordante viene rilevato o quando il carattere successivo determinerebbe un overflow del limite contenuto in count.se mbsrtowcs rileva multibyte (" \ 0 " del carattere null) o prima o dopo count si verifica, lo converte in un carattere di terminazione di null a 16 bit e viene arrestato.

Pertanto, la stringa di caratteri estesi a wcstr è con terminazione null solo se mbsrtowcs rileva un carattere null multibyte durante la conversione.Se le sequenze puntassero da mbstr e wcstr sovrapposizione, il comportamento di mbsrtowcs è definito.mbsrtowcs è interessati alla categoria di LC_TYPE delle impostazioni locali correnti.

mbsrtowcs la funzione è diverso da mbstowcs, _mbstowcs_l dal restartability.Lo stato di conversione viene archiviato in mbstate per le chiamate successive agli stessi o ad altre funzioni restartable.I risultati vengono definiti quando si combinano l'utilizzo delle funzioni restartable e nonrestartable.Ad esempio, un'applicazione utilizzerebbe mbsrlen anziché mbslen, se una chiamata successiva a mbsrtowcs in cui utilizzato invece mbstowcs.

se wcstr l'argomento è NULL, mbsrtombs restituisce la dimensione richiesta nelle parole della stringa di destinazione.se mbstate è null, l'interno mbstate_t lo stato di conversione viene utilizzato.se la sequenza di caratteri wchar non dispone di una rappresentazione di caratteri multibyte corrispondente, -1 viene restituito e errno è impostato su EILSEQ.

se mbstr viene NULL, il gestore non valido di parametro viene richiamato, come descritto in Convalida dei parametri.Se l'esecuzione è consentita per continuare, set di questa funzione errno in EINVAL e restituisce -1.

In C++, la funzione presenta un overload del modello che richiama la più recente, controparte protetta della funzione.Per ulteriori informazioni, vedere Assicurarsi che gli overload del modello.

Eccezioni

mbsrtowcs la funzione è multithread-safe se nessuna funzione nelle chiamate del thread corrente setlocale questa funzione è in esecuzione e mbstate non è null.

Equivalente .NET Framework

Non applicabile. Per chiamare la funzione c standard, utilizzare PInvoke. Per ulteriori informazioni, vedere Esempi di pinvoke.

Requisiti

routine

Intestazione di associazione

mbsrtowcs

<wchar.h>

Vedere anche

Riferimenti

Conversione di dati

Impostazioni locali

Interpretazione delle sequenze di caratteri multibyte

mbrtowc

mbtowc, _mbtowc_l

mbstowcs, _mbstowcs_l

mbsinit