wcrtomb(3)

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

БИБЛИОТЕКА
Стандартная библиотека языка C (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> и Kirill Rekhov <krekhov.dev@gmail.com>

Этот перевод является свободной программной документацией; он распространяется на условиях общедоступной лицензии GNU (GNU General Public License - GPL, https://www.gnu.org/licenses/gpl-3.0.html версии 3 или более поздней) в отношении авторского права, но БЕЗ КАКИХ-ЛИБО ГАРАНТИЙ.

Если вы обнаружите какие-либо ошибки в переводе этой страницы руководства, пожалуйста, сообщите об этом разработчику(ам) по его(их) адресу(ам) электронной почты или по адресу списка рассылки русских переводчиков (<debian-l10n-russian@lists.debian.org>).