Udostępnij za pośrednictwem


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.

Zobacz też

Informacje

Konwersja danych

Ustawienia regionalne

_mbclen, mblen, _mblen_l

mbstowcs, _mbstowcs_l

mbtowc, _mbtowc_l

wcstombs, _wcstombs_l

WideCharToMultiByte