Если 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, если была обнаружена
неправильная многобайтовая последовательность или если не получилось
выделить полный многобайтовый символ.