MBLEN(3)

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

ОБЗОР
#include <stdlib.h>

int mblen(const char *s, 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) предоставляет лучший интерфейс с теми же возможностями.

СМОТРИТЕ ТАКЖЕ
mbrlen(3)