wcrtomb(3) Library Functions Manual wcrtomb(3) NAZWA wcrtomb - konwertuje szerokie znaki na sekwencje wielobajtowe BIBLIOTEKA Standardowa biblioteka C (libc, -lc) SKLADNIA #include 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 wielobajtowa reprezentacje i zachowuje ja na poczatku tablicy znakowej, wskazywanej przez s. Aktualizuje stan przesuniecia *ps i zwraca dlugosc reprezentacji wielobajtowej, tj. liczbe bitow zapisanych do s. Innym przypadkiem jest sytuacja, gdy s rowniez nie jest NULL, lecz wc jest szerokim znakiem null (L'\0'). Wtedy funkcja wcrtomb() zachowuje w s sekwencje przesuniecia wymagana do przeniesienia *ps z powrotem do stanu poczatkowego, a za ta sekwencja doklejony bedzie bajt '\0'. Aktualizuje stan przesuniecia *ps (tj. przenosi go do stanu poczatkowego) i zwraca dlugosc sekwencji przesuniecia plus jeden, tj. liczbe bajtow zapisanych do s. Trzecim przypadek to s rowne NULL. Wtedy wc jest ignorowane, a funkcja zwraca wcrtomb(buf, L'\0', ps) gdzie buf jest wewnetrznym anonimowym buforem. We wszystkich powyzszych przypadkach, jesli ps jest NULL, to w jego miejscu uzywany jest anonimowy stan, znany tylko funkcji wcrtomb(). Do s zostanie zapisanych co najwyzej MB_CUR_MAX bajtow. Zadaniem programisty jest upewnienie sie, ze w s jest wystarczajaco duzo miejsca do przechowania sekwencji wielobajtowej. WARTOSC ZWRACANA Funkcja wcrtomb() zwraca liczbe bajtow, ktore zostaly (lub zostalyby) zapisane do tablicy bajtowej s. Jesli wc nie moze byc reprezentowane w sekwencji wielobajtowej (wedlug biezacych ustawien regionalnych), zwracane jest (size_t) -1 i errno jest ustawiane na EILSEQ. ATRYBUTY Informacje o pojeciach uzywanych w tym rozdziale mozna znalezc w podreczniku attributes(7). +--------------+--------------------------+----------------------------+ |Interfejs | Atrybut | Wartosc | +--------------+--------------------------+----------------------------+ |wcrtomb() | Bezpieczenstwo watkowe | MT-Unsafe race:wcrtomb/!ps | +--------------+--------------------------+----------------------------+ STANDARDY C11, POSIX.1-2008. HISTORIA POSIX.1-2001, C99. UWAGI Zachowanie wcrtomb() zalezy od kategorii LC_CTYPE biezacych ustawien regionalnych. Podawanie NULL jako ps nie jest bezpieczne dla watkow. ZOBACZ TAKZE mbsinit(3), wcsrtombs(3) TLUMACZENIE Tlumaczenie niniejszej strony podrecznika: Przemek Borys , Robert Luberda i Michal Kulach Niniejsze tlumaczenie jest wolna dokumentacja. Blizsze informacje o warunkach licencji mozna uzyskac zapoznajac sie z GNU General Public License w wersji 3 lub nowszej. Nie przyjmuje sie ZADNEJ ODPOWIEDZIALNOSCI. Bledy w tlumaczeniu strony podrecznika prosimy zglaszac na adres listy dyskusyjnej . Linux man-pages 6.15 17 maja 2025 r. wcrtomb(3)