mbsrtowcs
Převede řetězec více znaků v aktuální národní prostředí na odpovídající řetězec širokého znaku, díky možnosti systému restartování uprostřed více znaků.Bezpečnější verze této funkce je k dispozici. Podívejte se na téma mbsrtowcs_s.
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
Parametry
[limit]wcstr
Adresa pro uložení výsledný řetězec převedený širokého znaku.[ve out]mbstr
Nepřímý odkaz na umístění vícebajtový řetězec k převedení.[v]count
Maximální počet znaků (ne v bajtech) můžete převést a uložit do wcstr.[ve out]mbstate
Ukazatel na mbstate_t převodu stavu objektu.Pokud je tato hodnota ukazatel s hodnotou null, se používá objekt statické vnitřní převod stavu.Protože interní mbstate_t objekt není vláken, doporučujeme, aby vždy předáte vlastní mbstate parametru.
Vrácená hodnota
Vrátí počet znaků úspěšně převeden, nikoli včetně ukončující znak null, pokud existuje.Vrátí hodnotu (size_t)(-1), pokud došlo k chybě a nastaví errno k EILSEQ.
Poznámky
mbsrtowcs Funkce převede řetězec středník nepřímo odkazuje mbstr, do široké znaky, které jsou uloženy ve vyrovnávací paměti, na kterou odkazuje wcstr, s použitím převod stav obsažených v mbstate.Převod i nadále pro každý znak, dokud nebude nalezen buď ukončující null více znak, je zjištěna více sekvenci, která neodpovídá platným znakem v aktuální národní prostředí, nebo dokud count byly převedeny znaků.Pokud mbsrtowcs zaznamená více znak null ('\0') před nebo po count dojde k, jej převede na 16bitové ukončující znak null a zastaví.
Proto řetězce širokého znaku na wcstr je ukončený hodnotou null pouze tehdy, pokud mbsrtowcs více prázdný znak, zaznamená během převodu.Pokud je sekvence na kterou odkazuje mbstr a wcstr překrývají, chování mbsrtowcs není definováno.mbsrtowcsbude mít vliv na LC_TYPE kategorii aktuální národní prostředí.
mbsrtowcs Funkce se liší od mbstowcs, _mbstowcs_l podle jeho restartability.Stav převodu je uložen v mbstate pro následné volání stejné nebo jiné funkce s možností restartování.Výsledky nedefinované při použití s možností restartování a nonrestartable funkcí.Například by měla použít aplikace mbsrlen namísto mbslen, je-li následných volání mbsrtowcs se používá místombstowcs.
Pokud wcstr není ukazatel s hodnotou null, objekt ukazatel na kterou odkazuje mbstr je přiřazen ukazatel s hodnotou null, pokud převod zastavena, protože bylo dosaženo ukončující znak null.Jinak je přiřazena adresa minulosti pouze poslední více znak převést, pokud existuje.To umožňuje volání funkce následné restartování převodu, kde byla zastavena toto volání.
Pokud wcstr argument je ukazatel s hodnotou null, count argument je ignorován a mbsrtowcs vrátí požadovaná velikost v široké znaky pro cílový řetězec.Pokud mbstate je ukazatel s hodnotou null, funkce, která používá interní vlákno bezpečnost statického mbstate_t převodu stavu objektu.Pokud je sekvence znaků mbstr nemá odpovídající vícebajtové znakové vyjádření, je vrácena -1 a errno je nastavena na EILSEQ.
Pokud mbstr isa ukazatele null, obslužné rutiny neplatný parametr je volána, jak je popsáno v Ověření parametru.Pokud je povoleno spuštění chcete-li pokračovat, tato funkce nastaví errno k EINVAL a vrátí hodnotu -1.
Tato funkce v jazyce C++ má přetížení šablony, která volá novější, zabezpečenou partnerské strany této funkce.Další informace naleznete v tématu Přetížení zabezpečení šablony.
Výjimky
mbsrtowcs Je funkce s více vlákny bezpečnost, dokud není žádná funkce v aktuální vlákno volá setlocale , dokud tato funkce je prováděna a mbstate argument není ukazatel s hodnotou null.
Ekvivalent v rozhraní .NET Framework
Nelze použít. Pokud chcete volat standardní funkci jazyka C, použijte PInvoke. Další informace naleznete v tématu příklady vyvolat platformy.
Požadavky
Rutina |
Požadovaný hlavičkový soubor |
---|---|
mbsrtowcs |
< wchar.h > |