wctomb_s, _wctomb_s_l
Konwertuje szerokie odpowiednich znaków wielobajtowych.Wersja z wctomb, _wctomb_l z rozszerzeń zabezpieczeń opisane w Funkcje zabezpieczeń w 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
[out]pRetValue
Liczba bajtów lub kod wskazujący wynik.[out]mbchar
Adres znaków wielobajtowych.[w]sizeInBytes
Rozmiar buforu mbchar.[w]wchar
Szerokich znaków.[w]locale
Ustawienia regionalne, aby użyć.
Wartość zwracana
Zero, jeśli kończy się pomyślnie, kod błędu w przypadku awarii.
Warunki błędów
mbchar |
sizeInBytes |
Zwracanie wartości |
pRetValue |
---|---|---|---|
NULL |
> 0 |
EINVAL |
Nie zmodyfikowano |
wszelkie |
>INT_MAX |
EINVAL |
Nie zmodyfikowano |
wszelkie |
zbyt mała |
EINVAL |
Nie zmodyfikowano |
Jeśli występuje którykolwiek z powyższych warunków błąd, nieprawidłowy parametr wywoływana jest funkcja obsługi, zgodnie z opisem w Sprawdzanie poprawności parametru.Jeśli wykonanie jest dozwolone, aby kontynuować, wctomb zwraca EINVAL i ustawia errno do EINVAL.
Uwagi
wctomb_s Działać konwertuje jego wchar argument odpowiednie wielobajtowych znaków i zapisuje wyniki na mbchar.Z dowolnego miejsca w dowolnym programie, można wywołać funkcję.
Jeśli wctomb_s konwertuje szerokich znaków do znaków wielobajtowych, umieszcza liczbę bajtów (która nigdy nie jest większa niż MB_CUR_MAX) w szerokich znaków do wskazywanej przez pRetValue.Jeśli wchar jest znakiem null szerokich znaków (L '\0'), wctomb_s wypełnia pRetValue z 1.Jeśli wskaźnik docelowej mbchar ma wartość NULL, wctomb_s umieszcza 0 w pRetValue.Jeśli konwersja nie jest możliwe w bieżące ustawienia regionalne, wctomb_s umieszcza –1 w pRetValue.
wctomb_swykorzystuje bieżące ustawienia regionalne dla informacji zależnych od ustawień regionalnych; _wctomb_s_ljest identyczny z wyjątkiem, że korzysta z ustawień regionalnych, przekazany w zamian.Aby uzyskać więcej informacji, zobacz Ustawienia regionalne.
Wymagania
Rozpoczęto wykonywanie procedury |
Wymaganego nagłówka |
---|---|
wctomb_s |
<stdlib.h> |
_wctomb_s_l |
<stdlib.h> |
Aby uzyskać dodatkowe informacje o zgodności, zobacz zgodności we wprowadzeniu.
Przykład
Ten program ilustruje zachowanie wctomb funkcji.
// 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 );
}
Odpowiednik w programie .NET Framework
Nie dotyczy. Aby wywołać standardowych funkcji C, należy użyć PInvoke. Aby uzyskać więcej informacji, zobacz Przykłady wywołać platformy.