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¶
Uwaga! To tłumaczenie może być nieaktualne!
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.
Powyższe tłumaczenie pochodzi z nieistniejącego już Projektu
Tłumaczenia Manuali i
może nie być aktualne. W razie
zauważenia różnic między powyższym opisem a
rzeczywistym zachowaniem opisywanego programu lub funkcji, prosimy o
zapoznanie się z oryginalną (angielską) wersją strony
podręcznika za pomocą polecenia:
- man --locale=C 3 wcrtomb
Prosimy o pomoc w aktualizacji stron man - więcej informacji można
znaleźć pod adresem
http://sourceforge.net/projects/manpages-pl/.