wctomb_s, _wctomb_s_l
Převede široké znak odpovídající vícebajtových znaků.Verze wctomb, _wctomb_l s vylepšení zabezpečení popsaným v Funkce zabezpečení v CRT.
errno_t wctomb_s(
int *pRetValue,
char *mbchar,
size_t sizeInBytes,
wchar_t wchar
);
errno_t _wctomb_s_l(
int *pRetValue,
char *mbchar,
size_t sizeInBytes,
wchar_t wchar,
_locale_t locale
);
Parametry
[výstup]pRetValue
Počet bajtů nebo kód označující výsledek.[výstup]mbchar
Adresa vícebajtových znaků.[v]sizeInBytes
Velikost vyrovnávací paměti mbchar.[v]wchar
Široký znak.[v]locale
Národní prostředí použít.
Vrácená hodnota
Nula, pokud je úspěšná, kód chyby při selhání.
Chybové podmínky
mbchar |
sizeInBytes |
Vrácená hodnota |
pRetValue |
---|---|---|---|
NULL |
> 0 |
EINVAL |
Nezměněno |
žádné |
>INT_MAX |
EINVAL |
Nezměněno |
žádné |
příliš malá. |
EINVAL |
Nezměněno |
Pokud dojde k některé z výše uvedených podmínek chyba, je vyvolána neplatný parametr popisovače, popsaným v Ověření parametru.Pokud je povoleno spuštění pokračovat, wctomb vrátí EINVAL a errno na EINVAL.
Poznámky
wctomb_s Funkce převede jeho wchar argument odpovídající vícebajtové znakové a uloží výsledek na mbchar.Funkci lze volat z jakéhokoli místa v libovolném programu.
Pokud wctomb_s převede širokých znaků na vícebajtové znakové systémem je počet bajtů (což nebude nikdy větší než MB_CUR_MAX) v širokých znaků do celé odkazuje pRetValue.Pokud wchar se znakem null celého znaku (L "\0"), wctomb_s vyplní pRetValue s 1.Pokud cílový ukazatel mbchar hodnotu NULL, wctomb_s 0 vloží do pRetValue.Pokud převod není v aktuální národní prostředí wctomb_s –1, přepne do pRetValue.
wctomb_saktuální národní prostředí používá informace závislé na národní prostředí; _wctomb_s_lje identické používá místo předaný národní prostředí.Další informace naleznete v tématu Národní prostředí.
Požadavky
Rutina |
Požadované záhlaví |
---|---|
wctomb_s |
<stdlib.h> |
_wctomb_s_l |
<stdlib.h> |
Další informace o kompatibilitě, viz Compatibility v úvodu.
Příklad
Tento program popisuje chování wctomb funkce.
// crt_wctomb_s.cpp
#include <stdio.h>
#include <stdlib.h>
int main( void )
{
int i;
wchar_t wc = L'a';
char *pmb = (char *)malloc( MB_CUR_MAX );
printf_s( "Convert a wide character:\n" );
wctomb_s( &i, pmb, MB_CUR_MAX, wc );
printf_s( " Characters converted: %u\n", i );
printf_s( " Multibyte character: %.1s\n\n", pmb );
}
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.