wcrtomb(3)

ИМЯ
wcrtomb - преобразование широкого символа в многобайтовую последовательность

LIBRARY
Standard C library (libc, -lc)

СИНТАКСИС
#include <wchar.h>

size_t wcrtomb(char *restrict s, wchar_t wc, mbstate_t *restrict ps);

ОПИСАНИЕ
The main case for this function is when s is not NULL and wc is not a null wide character (L'\0'). In this case, the wcrtomb() function converts the wide character wc to its multibyte representation and stores it at the beginning of the character array pointed to by s. It updates the shift state *ps, and returns the length of said multibyte representation, that is, the number of bytes written at s.

A different case is when s is not NULL, but wc is a null wide character (L'\0'). In this case, the wcrtomb() function stores at the character array pointed to by s the shift sequence needed to bring *ps back to the initial state, followed by a '\0' byte. It updates the shift state *ps (i.e., brings it into the initial state), and returns the length of the shift sequence plus one, that is, the number of bytes written at s.

Третий случай — это когда s равно NULL. Тогда wc игнорируется, а функция возвращает

    wcrtomb(buf, L'\0', ps)

где buf — внутренний анонимный буфер.

Во всех вышеперечисленных случаях, если ps равно NULL, то используется статическое анонимное состояние, известное только функции wcrtomb().

ВОЗВРАЩАЕМОЕ ЗНАЧЕНИЕ
Функция wcrtomb() возвращает количество байтов, которые уже записаны или должны быть записаны в массив, на который указывает s. Если значение wc не может быть представлено как многобайтовая последовательность (в соответствии с текущей локалью), то возвращается (size_t) -1, а errno присваивается значение EILSEQ.

АТРИБУТЫ
Описание терминов данного раздела смотрите в attributes(7).
Интерфейс | Атрибут | Значение
wcrtomb() | Безвредность в нитях | MT-Unsafe race:wcrtomb/!ps

СТАНДАРТЫ
C11, POSIX.1-2008.

ИСТОРИЯ
POSIX.1-2001, C99.

ЗАМЕЧАНИЯ
Поведение wcrtomb() зависит от категории LC_CTYPE текущей локали.

Передавать NULL в качестве ps небезопасно при работе с нитями.

СМ. ТАКЖЕ
mbsinit(3), wcsrtombs(3)

ПЕРЕВОД
Русский перевод этой страницы руководства был сделан Azamat Hackimov <azamat.hackimov@gmail.com> и Yuri Kozlov <yuray@komyakino.ru>

Этот перевод является бесплатной документацией; прочитайте Стандартную общественную лицензию GNU версии 3 (https://www.gnu.org/licenses/gpl-3.0.html) или более позднюю, чтобы узнать об условиях авторского права. Мы не несем НИКАКОЙ ОТВЕТСТВЕННОСТИ.

Если вы обнаружите ошибки в переводе этой страницы руководства, пожалуйста, отправьте электронное письмо на man-pages-ru-talks@lists.sourceforge.net.