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 (если был распознан ненулевой широкий символ). Возвращается 0, если был распознан нулевой широкий символ. Возвращается -1, если была обнаружена неправильная многобайтовая последовательность или если не получилось выделить полный многобайтовый символ.

СООТВЕТСТВИЕ СТАНДАРТАМ
ISO/ANSI C, UNIX98

СМ. ТАКЖЕ
mbrlen(3)

ЗАМЕЧАНИЯ
Поведение mblen зависит от категории LC_CTYPE текущей локали.

Функция mbrlen предоставляет более удобный интерфейс с таким же функциональным назначением.