Provided by: manpages-ru-dev_4.21.0-2_all bug

ИМЯ

       mbtowc - преобразовывает мультибайтовую последовательность в широкий символ

LIBRARY

       Standard C library (libc, -lc)

СИНТАКСИС

       #include <stdlib.h>

       int mbtowc(wchar_t *restrict pwc, const char s[restrict .n], size_t n);

ОПИСАНИЕ

       The  main case for this function is when s is not NULL and pwc is not NULL.  In this case,
       the mbtowc()  function inspects at most n bytes of the multibyte  string  starting  at  s,
       extracts the next complete multibyte character, converts it to a wide character and stores
       it at *pwc.  It updates an internal shift state known only to the mbtowc() function.  If s
       does  not  point  to a null byte ('\0'), it returns the number of bytes that were consumed
       from s, otherwise it returns 0.

       Если в n байтах, начиная с s, не содержится полного многобайтового символа или если в  них
       содержится  некорректный  многобайтовый  символ,  то  mbtowc()  возвращает  -1.  Это может
       произойти даже если n  >=  MB_CUR_MAX,  если  в  многобайтовой  строке  содержится  лишние
       сдвиговые последовательности.

       Ещё  случай,  когда  s  не  равно  NULL,  а pwc равно NULL. В этом случае функция mbtowc()
       действует как описано выше, но не сохраняет преобразованный широкий символ в памяти.

       И третий вариант, когда s равно NULL. В этом случае pwc и n игнорируются. Функция mbtowc()
       сбрасывает  состояние  сдвига,  известное только ей, в начальное состояние и возвращает не
       ноль, если кодировка имеет непростое состояние сдвига, или ноль, если кодировка  не  имеет
       состояний.

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

       Если  s не равно NULL, то функция mbtowc() возвращает количество потраченных байт, начиная
       с s, или 0, если s указывает на байт null, или -1 — при ошибке.

       Если значение s равно NULL, то функция mbtowc() возвращает не ноль, если  кодировка  имеет
       необычное смещение, или ноль, если кодировка не имеет смещения.

АТРИБУТЫ

       Описание терминов данного раздела смотрите в attributes(7).

       ┌─────────────────────────────────────────────────┬──────────────────────┬────────────────┐
       │ИнтерфейсАтрибутЗначение       │
       ├─────────────────────────────────────────────────┼──────────────────────┼────────────────┤
       │mbtowc()                                         │ Безвредность в нитях │ MT-Unsafe race │
       └─────────────────────────────────────────────────┴──────────────────────┴────────────────┘

СТАНДАРТЫ

       POSIX.1-2001, POSIX.1-2008, C99.

ЗАМЕЧАНИЯ

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

       Данную  функцию  небезопасно  использовать  в  нитях.  Для  этого  лучше  подходит функция
       mbrtowc(3) с тем же интерфейсом.

СМ. ТАКЖЕ

       MB_CUR_MAX(3), mblen(3), mbrtowc(3), mbstowcs(3), wcstombs(3), wctomb(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>

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

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