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¶
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.
ZOBACZ TAKŻE¶
mbsinit(3),
wcsrtombs(3)
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) <pborys@dione.ids.pl>, Robert Luberda
<robert@debian.org> i Michał Kułach
<michal.kulach@gmail.com>.
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.