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(). 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 Autorami polskiego tlumaczenia niniejszej strony podrecznika sa: 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.06 31 pazdziernika 2023 r. wcrtomb(3)