Provided by: manpages-ru-dev_4.27.0-1_all bug

НАИМЕНОВАНИЕ

       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 или
       более поздней) в отношении авторского права, но БЕЗ КАКИХ-ЛИБО ГАРАНТИЙ.

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

Справочные страницы Linux 6.9.1                  15 июня 2024 г.                                      wcrtomb(3)