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

ИМЯ

       mbrlen - вычисляет количество байт в следующем многобайтовом символе

LIBRARY

       Standard C library (libc, -lc)

СИНТАКСИС

       #include <wchar.h>

       size_t mbrlen(const char s[restrict .n], size_t n,
                     mbstate_t *restrict ps);

ОПИСАНИЕ

       Функция  mbrlen() просматривает не более n байт в многобайтовой строке, начинающейся с s и
       извлекает следующий полный многобайтовый символ. Она изменяет состояние сдвига  *ps.  Если
       многобайтовый  символ  не является широким символом null, то возвращается количество байт,
       которые использовались из s. Если многобайтовый символ  является  широким  символом  null,
       состояние сдвига *ps сбрасывается в начальное и возвращается 0.

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

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

       Если  ps  равно  NULL,  то  используется статическое анонимное состояние, известное только
       функции mbrlen().

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

       Функция   mbrlen()   возвращает   количество   байт,   просмотренных    в    многобайтовой
       последовательности,  начинающейся  с s, если при этом был получен широкий символ не равный
       null. Она возвращает 0, если был получен широкий символ null. Она возвращает (size_t) -1 и
       присваивает   errno   значение   EILSEQ,   если   встречена   некорректная   многобайтовая
       последовательность. Она возвращает (size_t) -2, если не удалось найти полную многобайтовую
       последовательность, что означает, что n должно быть увеличено.

АТРИБУТЫ

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

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

СТАНДАРТЫ

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

ЗАМЕЧАНИЯ

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

СМ. ТАКЖЕ

       mbrtowc(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⟩.