Provided by: manpages-pl-dev_20060617-1_all bug

NAZWA

       wcrtomb - konwertuje szerokie znaki na sekwencje wielobajtowe

SKŁADNIA

       #include <wchar.h>

       size_t wcrtomb(char *s, wchar_t wc, mbstate_t *ps);

OPIS

       Podstawowym zastosowaniem tej funkcji jest to, gdy s nie jest NULL i wc
       nie jest L'\0'.  W tym przypadku, funkcja ta konwertuje szeroki znak wc
       na  jego  wielobajtową reprezentację i zachowuje ją na początku tablicy
       znakowej, wskazywanej przez s.  Aktualizuje  stan  przesunięcia  *ps  i
       zwraca  długość reprezentacji wielobajtowej, tj. ilość bitów zapisanych
       do s.

       Innym przypadkiem jest sytuacja, gdy s również nie jest NULL,  lecz  wc
       jest  L'\0'.  W  tym  przypadku,  funkcja  ta  zachowuje  w s sekwencję
       przesunięcia,  wymaganą  do  przeniesienia  *ps  z  powrotem  do  stanu
       początkowego.  Za  sekwencją  doklejony  będzie bajt '\0'.  Aktualizuje
       stan przesunięcia *ps (tj. przenosi go do stanu początkowego) i  zwraca
       długość sekwencji przesunięcia plus jeden, tj. liczbę bajtów zapisanych
       do s.

       Trzecim przypadkiem jest gdy s jest NULL.  W  tym  przypadku,  wc  jest
       ignorowane,  a  funkcja  zwraca  wcrtomb(buf,L'\0',ps),  gdzie buf jest
       wewnętrznym anonimowym buforem.

       We wszystkich powyższych przypadkach, jeśli ps jest wskaźnikiem NULL, w
       jego  miejscu używany jest anonimowy stan, znany tylko funkcji wcrtomb.

WARTOŚĆ ZWRACANA

       Funkcja wcrtomb zwraca liczbę bajtów,  które  zostały  (lub  zostałyby)
       zapisane  do tablicy bajtowej s. Jeśli wc nie może być reprezentowane w
       sekwencji  wielobajtowej  (według  obecnych  locale),   zwracane   jest
       (size_t)(-1) i errno jest ustawiane na EILSEQ.

ZGODNE Z

       ISO/ANSI C, UNIX98

ZOBACZ TAKŻE

       wcsrtombs(3)

UWAGI

       Zachowanie tej funkcji zależy od kategorii LC_CTYPE aktualnych ustawień
       locale.

       Podawanie NULL jako ps nie jest bezpieczne w trybie wielowątkowym.