SKŁADNIA
#include <wchar.h>
size_t wcrtomb(char *s, wchar_t wc, mbstate_t *ps);
OPIS
Podstawowym zastosowaniem tej funkcji jest przypadek, gdy s nie jest NULL i wc nie jest szerokim znakiem null (L'\0'). Wtedy funkcja wcrtomb() 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. liczbę bitów zapisanych do s.Innym przypadkiem jest sytuacja, gdy s również nie jest NULL, lecz wc jest szerokim znakiem null (L'\0'). Wtedy funkcja wcrtomb() zachowuje w s sekwencję przesunięcia wymaganą do przeniesienia *ps z powrotem do stanu początkowego, a za tą 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 przypadek to s równe NULL. Wtedy 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 NULL, to 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 bieżących ustawień regionalnych), zwracane jest (size_t) -1 i errno jest ustawiane na EILSEQ.ZGODNE Z
C99.UWAGI
Zachowanie wcrtomb() zależy od kategorii LC_CTYPE bieżących ustawień regionalnych.Podawanie NULL jako ps nie jest bezpieczne dla wątków.
O STRONIE
Angielska wersja tej strony pochodzi z wydania 3.71 projektu Linux man-pages. Opis projektu, informacje dotyczące zgłaszania błędów, oraz najnowszą wersję oryginału można znaleźć pod adresem http://www.kernel.org/doc/man-pages/.TŁUMACZENIE
Autorami polskiego tłumaczenia niniejszej strony podręcznika man są: Przemek Borys (PTM) <[email protected]>, Robert Luberda <[email protected]> i Michał Kułach <[email protected]>.Polskie tłumaczenie jest częścią projektu manpages-pl; uwagi, pomoc, zgłaszanie błędów na stronie http://sourceforge.net/projects/manpages-pl/. Jest zgodne z wersją 3.71 oryginału.