Sdílet prostřednictvím


mbsrtowcs_s

Jeho znázornění řetězec vícebajtových znaků převeďte řetězec znaků.Verze mbsrtowcs s vylepšení zabezpečení popsaným v Funkce zabezpečení v CRT.

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

Parametry

  • [výstup]pReturnValue
    Počet znaků, které jsou převedeny.

  • [výstup]wcstr
    Adresa vyrovnávací paměti pro výsledný řetězec znaků převedeného.

  • [výstup]sizeInWords
    Velikost wcstr slovy (široký znaků).

  • [v]mbstr
    Odkazuje na umístění řetězec vícebajtových znaků převést.

  • [v]count
    Maximální počet znaků široké ukládat wcstr vyrovnávací paměti není včetně ukončující null nebo _TRUNCATE.

  • [v]mbstate
    Ukazatel na mbstate_t převodu stavu objektu.

Vrácená hodnota

Nula, pokud je úspěšná, kód chyby při selhání.

Chybový stav

Vrátí hodnotu aerrno

wcstris NULL and sizeInWords > 0

EINVAL

mbstrjeNULL

EINVAL

Cílové vyrovnávací paměti je příliš malá, obsahovat řetězec převedený (Pokud count je _TRUNCATE; viz poznámky níže)

ERANGE

Pokud dojde k některé z těchto podmínek, je neplatný parametr výjimky vyvolat popsaným v Ověření parametrů .Pokud je povoleno spuštění pokračovat, vrátí kód chyby a nastaví errno jak je uvedeno v tabulce.

Poznámky

mbsrtowcs_s Funkce převede řetězec vícebajtových znaků odkazuje mbstr do široké znaky uloženy ve vyrovnávací paměti, na kterou odkazuje wcstr, pomocí převodu stavu obsažené v mbstate.Převod bude pro každý znak pokračovat, dokud není splněna jedna z těchto podmínek:

  • Je-li zjištěna vícebajtové znaky null

  • Je-li zjištěna neplatná vícebajtové znakové

  • Počet široké znaků wcstr vyrovnávací paměti se rovná count.

Cíl řetězec je vždy zakončený (i u chyba).

Pokud count je speciální hodnota _TRUNCATE, pak mbsrtowcs_s převede část řetězce jako se vejdou do vyrovnávací paměti cíl, přitom stále ponechat prostor pro zakončení null.

Pokud mbsrtowcs_s úspěšně převede řetězec zdroj odešle do široké znaků převedeného řetězec, včetně ukončovací null do velikosti *pReturnValue (podle pReturnValue není NULL).Dochází i v případě wcstr argument je NULL a poskytuje způsob, jak určit velikost použité vyrovnávací paměti.Note that if wcstr is NULL, count is ignored.

Pokud mbstate je NULL, vnitřní mbstate_t slouží k převodu stavu.

Pokud mbsrtowcs_s nalezne neplatný vícebajtových znaků -1 odešle do *pReturnValue, nastaví cílové vyrovnávací paměti na prázdný řetězec, nastaví errno na EILSEQa vrátí EILSEQ.

Pokud na sekvence odkazuje mbstr a wcstr překrývají, chování mbsrtowcs_s nedefinovaná.mbsrtowcs_svliv LC_TYPE kategorie aktuální národní prostředí.

Poznámka k zabezpečeníPoznámka k zabezpečení

Zajistit, aby wcstr a mbstr nepřekrývají a že count správně odráží počet převodu vícebajtových znaků.

mbsrtowcs_s Funkce se liší od mbstowcs_s _mbstowcs_s_l podle jeho restartability.Stav převodu je uložen v mbstate pro následné volání na stejné nebo jiné funkce s možností restartování.Výsledky nedefinované při použití funkce restartování a nonrestartable.Například použít aplikaci mbsrlen namísto mbslen, pokud následné volání mbsrtowcs_s byly použity namístombstowcs_s.

V jazyce C++ použití této funkce je zjednodušeno díky šablony přetížení; přetížení automaticky odvodit vyrovnávací paměti (není tak nutné zadat argument velikost) a jsou automaticky nahradit starší, -secure funkce s jejich protějšky novější, zabezpečené.Další informace naleznete v tématu Přetížení šablony zabezpečení.

Výjimky

mbsrtowcs Multithread bezpečné je funkce jako žádná funkce v aktuální podproces volá setlocale při této funkce je provádění a mbstate má hodnotu null.

Ekvivalent v rozhraní .NET Framework

Nelze použít Použijte volání funkce standardní C, PInvoke. Další informace naleznete v tématu Příklady vyvolat platformu.

Požadavky

Rutina

Požadované záhlaví

mbsrtowcs

<wchar.h>

Viz také

Referenční dokumentace

Převod dat

Národní prostředí

Výklad vícebajtové znakové sekvence

mbrtowc

mbtowc _mbtowc_l

mbstowcs_s _mbstowcs_s_l

mbsinit