.\" Copyright (c) Bruno Haible <haible@clisp.cons.org>
.\"
.\" %%%LICENSE_START(GPLv2+_DOC_ONEPARA)
.\" This is free documentation; you can redistribute it and/or
.\" modify it under the terms of the GNU General Public License as
.\" published by the Free Software Foundation; either version 2 of
.\" the License, or (at your option) any later version.
.\" %%%LICENSE_END
.\"
.\" References consulted:
.\"   GNU glibc-2 source code and manual
.\"   Dinkumware C library reference http://www.dinkumware.com/
.\"   OpenGroup's Single UNIX specification http://www.UNIX-systems.org/online.html
.\"   ISO/IEC 9899:1999
.\"
.\"*******************************************************************
.\"
.\" This file was generated with po4a. Translate the source file.
.\"
.\"*******************************************************************
.\" This file is distributed under the same license as original manpage
.\" Copyright of the original manpage:
.\" Copyright © Bruno Haible 
.\" Copyright © of Polish translation:
.\" Przemek Borys (PTM) <pborys@dione.ids.pl>, 2002.
.\" Robert Luberda <robert@debian.org>, 2014.
.\" Michał Kułach <michal.kulach@gmail.com>, 2014, 2016.
.TH WCRTOMB 3 2015\-08\-08 GNU "Podręcznik programisty Linuksa"
.SH NAZWA
wcrtomb \- konwertuje szerokie znaki na sekwencje wielobajtowe
.SH SKŁADNIA
.nf
\fB#include <wchar.h>\fP
.sp
\fBsize_t wcrtomb(char *\fP\fIs\fP\fB, wchar_t \fP\fIwc\fP\fB, mbstate_t *\fP\fIps\fP\fB);\fP
.fi
.SH OPIS
Podstawowym zastosowaniem tej funkcji jest przypadek, gdy \fIs\fP nie jest NULL
i \fIwc\fP nie jest szerokim znakiem null (L\(aq\e0\(aq). Wtedy funkcja
\fBwcrtomb\fP() konwertuje szeroki znak \fIwc\fP na jego wielobajtową
reprezentację i zachowuje ją na początku tablicy znakowej, wskazywanej przez
\fIs\fP. Aktualizuje stan przesunięcia \fI*ps\fP i zwraca długość reprezentacji
wielobajtowej, tj. liczbę bitów zapisanych do \fIs\fP.
.PP
Innym przypadkiem jest sytuacja, gdy \fIs\fP również nie jest NULL, lecz \fIwc\fP
jest szerokim znakiem null (L\(aq\e0\(aq). Wtedy funkcja \fBwcrtomb\fP()
zachowuje w \fIs\fP sekwencję przesunięcia wymaganą do przeniesienia \fI*ps\fP z
powrotem do stanu początkowego, a za tą sekwencją doklejony będzie bajt
\(aq\e0\(aq. Aktualizuje stan przesunięcia \fI*ps\fP (tj. przenosi go do stanu
początkowego) i zwraca długość sekwencji przesunięcia plus jeden, tj. liczbę
bajtów zapisanych do \fIs\fP.
.PP
Trzecim przypadek to \fIs\fP równe NULL. Wtedy \fIwc\fP jest ignorowane, a funkcja
zwraca

    wcrtomb(buf, L\(aq\e0\(aq, ps)

gdzie \fIbuf\fP jest wewnętrznym anonimowym buforem.
.PP
We wszystkich powyższych przypadkach, jeśli \fIps\fP jest NULL, to w jego
miejscu używany jest anonimowy stan, znany tylko funkcji \fBwcrtomb\fP().
.SH "WARTOŚĆ ZWRACANA"
Funkcja \fBwcrtomb\fP() zwraca liczbę bajtów, które zostały (lub zostałyby)
zapisane do tablicy bajtowej \fIs\fP. Jeśli \fIwc\fP nie może być reprezentowane w
sekwencji wielobajtowej (według bieżących ustawień regionalnych), zwracane
jest \fI(size_t)\ \-1\fP i \fIerrno\fP jest ustawiane na \fBEILSEQ\fP.
.SH ATRYBUTY
Informacje o pojęciach używanych w tym rozdziale można znaleźć w podręczniku
\fBattributes\fP(7).
.TS
allbox;
lb lb lbw26
l l l.
Interfejs	Atrybut	Wartość
T{
\fBwcrtomb\fP()
T}	Bezpieczeństwo wątkowe	MT\-Unsafe race:wcrtomb/!ps
.TE

.SH "ZGODNE Z"
POSIX.1\-2001, POSIX.1\-2008, C99.
.SH UWAGI
Zachowanie \fBwcrtomb\fP() zależy od kategorii \fBLC_CTYPE\fP bieżących ustawień
regionalnych.
.PP
Podawanie NULL jako \fIps\fP nie jest bezpieczne dla wątków.
.SH "ZOBACZ TAKŻE"
\fBmbsinit\fP(3), \fBwcsrtombs\fP(3)
.SH "O STRONIE"
Angielska wersja tej strony pochodzi z wydania 4.07 projektu Linux
\fIman\-pages\fP. Opis projektu, informacje dotyczące zgłaszania błędów oraz
najnowszą wersję oryginału można znaleźć pod adresem
\%https://www.kernel.org/doc/man\-pages/.
.SH 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>.
.PP
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ą \fB 4.07 \fPoryginału.
