NAZWA

wcrtomb - konwertuje szerokie znaki na sekwencje wielobajtowe

BIBLIOTEKA

Standardowa biblioteka C ( libc, -lc)

SKŁADNIA

#include <wchar.h>
size_t wcrtomb(char *restrict s, wchar_t wc, mbstate_t *restrict 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.

ATRYBUTY

Informacje o pojęciach używanych w tym rozdziale można znaleźć w podręczniku attributes(7).
Interfejs Atrybut Wartość
wcrtomb() Bezpieczeństwo wątkowe MT-Unsafe race:wcrtomb/!ps
 

STANDARDY

POSIX.1-2001, POSIX.1-2008, 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.

ZOBACZ TAKŻE

mbsinit(3), wcsrtombs(3)

TŁUMACZENIE

Autorami polskiego tłumaczenia niniejszej strony podręcznika są: Przemek Borys <[email protected]>, Robert Luberda <[email protected]> i Michał Kułach <[email protected]>
Niniejsze tłumaczenie jest wolną dokumentacją. Bliższe informacje o warunkach licencji można uzyskać zapoznając się z GNU General Public License w wersji 3 lub nowszej. Nie przyjmuje się ŻADNEJ ODPOWIEDZIALNOŚCI.
Błędy w tłumaczeniu strony podręcznika prosimy zgłaszać na adres listy dyskusyjnej [email protected]

Recommended readings

Pages related to wcrtomb you should read also: