Sdílet prostřednictvím


mbstowcs_s, _mbstowcs_s_l

Převede odpovídající posloupnost znaků celou posloupnost vícebajtových znaků.Verze mbstowcs, _mbstowcs_l s vylepšení zabezpečení popsaným v Funkce zabezpečení v CRT.

errno_t mbstowcs_s(
   size_t *pReturnValue,
   wchar_t *wcstr,
   size_t sizeInWords,
   const char *mbstr,
   size_t count 
);
errno_t _mbstowcs_s_l(
   size_t *pReturnValue,
   wchar_t *wcstr,
   size_t sizeInWords,
   const char *mbstr,
   size_t count,
   _locale_t locale
);
template <size_t size>
errno_t mbstowcs_s(
   size_t *pReturnValue,
   wchar_t (&wcstr)[size],
   const char *mbstr,
   size_t count 
); // C++ only
template <size_t size>
errno_t _mbstowcs_s_l(
   size_t *pReturnValue,
   wchar_t (&wcstr)[size],
   const char *mbstr,
   size_t count,
   _locale_t locale
); // C++ only

Parametry

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

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

  • [v]sizeInWords
    Velikost wcstr slova vyrovnávací paměť.

  • [v]mbstr
    Adresa posloupnost null ukončena vícebajtových znaků.

  • [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]locale
    Národní prostředí použít.

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

wcstris not NULL and sizeInWords == 0

EINVAL

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

Poznámky

mbstowcs_s Funkce převede řetězec vícebajtových znaků odkazuje mbstr do široké znaky uloženy ve vyrovnávací paměti odkazuje wcstr.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 zjištěna neplatná vícebajtových znaků

  • Počet uložených v široké znaků wcstr vyrovnávací paměti se rovná count.

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

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

Pokud mbstowcs_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, and sizeInWords must be 0.

Pokud mbstowcs_s nalezne neplatný vícebajtové znakové ji umístí 0 *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í mbstowcs_s nedefinovaná.

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ů.

mbstowcs_spoužívá aktuální národní prostředí pro všechny národní prostředí závislé na chování; _mbstowcs_s_lje identické používá místo předány národní prostředí.Další informace naleznete v tématu Národní prostředí.

V jazyce C++ použití těchto funkcí 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í zabezpečení šablony.

Požadavky

Rutina

Požadované záhlaví

mbstowcs_s

<stdlib.h>

_mbstowcs_s_l

<stdlib.h>

Další informace o kompatibilitě, viz Compatibility v úvodu.

Ekvivalent v rozhraní .NET Framework

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

Viz také

Referenční dokumentace

Převod dat

Národní prostředí

MultiByteToWideChar

Výklad sekvencí vícebajtových znaků

_mbclen, mblen, _mblen_l

mbtowc, _mbtowc_l

wcstombs, _wcstombs_l

wctomb, _wctomb_l