Provided by:
manpages-pl-dev_20060617-1_all 
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.