mblen(3) | Library Functions Manual | mblen(3) |
mblen - вычисляет количество байтов в следующем многобайтовом символе
Standard C library (libc, -lc)
#include <stdlib.h>
int mblen(const char s[.n], size_t n);
Если s не равно NULL, то функция mblen() просматривает не более n байт в многобайтовой строке, начинающейся с s и извлекает следующий полный многобайтовый символ. Изменяется анонимное состояние сдвига, известное только функции mblen(). Если многобайтовый символ не является широким символом null, то возвращается количество байт, которые использовались из s. Если многобайтовый символ является широким символом null, то возвращается 0.
Если в n байтах, начиная с s, не содержится полного многобайтового символа, то mblen() возвращает -1. Это может произойти даже, если n больше или равно MB_CUR_MAX, если в многобайтовой строке содержится лишние сдвиговые последовательности.
Если многобайтовая строка, начинающаяся с s, содержит некорректную многобайтовую последовательность до следующего полного символа, то mblen() также возвращает -1.
Если значение s равно NULL, то функция mblen() обнуляет состояние сдвига (известное только этой функции), переводя его начальное положение, и возвращает ненулевое значение, если кодировка имеет необычное состояние сдвига; ноль будет возвращён, если кодировка не имеет сдвига.
Функция mblen() возвращает количество байт, просмотренных в многобайтовой последовательности, начинающейся с s, если при этом был распознан широкий символ не равный null. Она возвращает 0, если был получен широкий символ null. Она возвращает -1, если встречена некорректная многобайтовая последовательность или если невозможно найти полный многобайтовый символ.
Описание терминов данного раздела смотрите в attributes(7).
Интерфейс | Атрибут | Значение |
mblen() | Безвредность в нитях | MT-Unsafe race |
POSIX.1-2001, POSIX.1-2008, C99.
Поведение mblen() зависит от категории LC_CTYPE текущей локали.
Функция mbrlen(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 или более позднюю, чтобы узнать об условиях авторского права. Мы не несем НИКАКОЙ ОТВЕТСТВЕННОСТИ.
Если вы обнаружите ошибки в переводе этой страницы руководства, пожалуйста, отправьте электронное письмо на man-pages-ru-talks@lists.sourceforge.net.
15 декабря 2022 г. | Linux man-pages 6.03 |