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

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

       mbsrtowcs - convert a multibyte string to a wide-character string (restartable)

БИБЛИОТЕКА

       Стандартная библиотека языка C (libc, -lc)

ОБЗОР

       #include <wchar.h>

       size_t mbsrtowcs(wchar_t dest[restrict .dsize],
                        const char **restrict src,
                        size_t dsize, mbstate_t *restrict ps);

ОПИСАНИЕ

       If  dest  is not NULL, convert the multibyte string *src to a wide-character string starting at dest.  At
       most dsize wide characters are written to dest.  The shift state  *ps  is  updated.   The  conversion  is
       effectively  performed  by repeatedly calling mbrtowc(dest, *src, n, ps) where n is some positive number,
       as long as this call succeeds, and then incrementing dest  by  one  and  *src  by  the  number  of  bytes
       consumed.  The conversion can stop for three reasons:

       •  Во  входных  данных  обнаружена  неправильная  многобайтовая  последовательность.  В  этом случае *src
          по-прежнему указывает на неправильную многобайтовую  последовательность,  возвращается  (size_t) -1  и
          errno присваивается EILSEQ.

       •  dsize  non-L'\0' wide characters have been stored at dest.  In this case, *src is left pointing to the
          next multibyte sequence to be converted, and  the  number  of  wide  characters  written  to  dest  is
          returned.

       •  The  multibyte  string  has  been  completely converted, including the terminating null wide character
          ('\0'), which has the side effect of bringing back *ps to the initial state.  In this  case,  *src  is
          set  to  NULL,  and the number of wide characters written to dest, excluding the terminating null wide
          character, is returned.

       Если dest равно NULL, dsize игнорируется, и преобразование продолжается, как описано выше, за исключением
       того, что преобразованные широкие символы не записываются  в  память,  и  что  ограничений  по  длине  не
       существует.

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

       In order to avoid the case 2 above, the programmer should make sure dsize is greater  than  or  equal  to
       mbsrtowcs(NULL,src,0,ps)+1.

       Программист должен убедиться, что в dest есть место для символов шириной не менее dsize.

       This function is a restartable version of mbstowcs(3).

ВОЗВРАЩАЕМОЕ ЗНАЧЕНИЕ

       The number of wide characters that make up the converted part of the wide-character string, not including
       the  terminating  null  wide character.  If an invalid multibyte sequence was encountered, (size_t) -1 is
       returned, and errno set to EILSEQ.

АТРИБУТЫ

       Описание терминов данного раздела смотрите в attributes(7).
       ┌─────────────┬──────────────────────┬──────────────────────────────────────────────────────────────────┐
       │ ИнтерфейсАтрибутЗначение                                                         │
       ├─────────────┼──────────────────────┼──────────────────────────────────────────────────────────────────┤
       │ mbsrtowcs() │ Безвредность в нитях │ MT-Unsafe race:mbsrtowcs/!ps                                     │
       └─────────────┴──────────────────────┴──────────────────────────────────────────────────────────────────┘

СТАНДАРТЫ

       C11, POSIX.1-2008.

ИСТОРИЯ

       POSIX.1-2001, C99.

ПРИМЕЧАНИЯ

       Поведение mbsrtowcs() зависит от категории LC_CTYPE текущей локали.

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

СМОТРИТЕ ТАКЖЕ

       iconv(3), mbrtowc(3), mbsinit(3), mbsnrtowcs(3), mbstowcs(3)

ПЕРЕВОД

       Русский  перевод  этой   страницы   руководства   разработал(и)   aereiae   <aereiae@gmail.com>,   Alexey
       <a.chepugov@gmail.com>, Azamat Hackimov <azamat.hackimov@gmail.com>, Dmitriy S. Seregin <dseregin@59.ru>,
       Dmitry  Bolkhovskikh  <d20052005@yandex.ru>,  ITriskTI <ITriskTI@gmail.com>, Max Is <ismax799@gmail.com>,
       Yuri  Kozlov  <yuray@komyakino.ru>,  Иван  Павлов   <pavia00@gmail.com>,   Малянов   Евгений   Викторович
       <maljanow@outlook.com> и 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 г.                                    mbsrtowcs(3)