mbrlen - определяет количество байтов в последующем многобайтовом символе
СИНТАКСИС
#include <wchar.h>size_t mbrlen(const char *s, size_t n, mbstate_t *ps);
ОПИСАНИЕ
Функция mbrlen проверяет, в лучшем случае,
n байтов в многобайтовой строке, начинающейся с s,
и извлекает из нее следующий полный многобайтовый символ.
Обновляется статус смещения *ps. Если многобайтовый символ "непустой",
то возвращается количество байтов, которые были взяты из s.
Если многобайтовый символ является "пустым", то
статус смещения *ps становится исходным и возвращается 0.
Если в количество n байтов, начинающихся с s, не входит
полный многобайтовый символ, то mbrlen возвращает (size_t)(-2).
Такое может случиться даже при n >= MB_CUR_MAX,
если многобайтовая строка содержит лишние последовательности сдвига.
Если многобайтовая строка, начинающаяся с s,
содержит неправильную многобайтовую последовательность перед
последующим полным символом, то mbrlen возвращает
(size_t)(-1) и меняет значение переменной errno на EILSEQ.
В этом случае влияние на *ps является неопределенным.
Если s является NULL-указателем, то вместо него используется
статическое анонимное смещение, известное только функции mbrlen.
ВОЗВРАЩАЕМЫЕ ЗНАЧЕНИЯ
Функция mbrlen возвращает количество байтов, выделенных из многобайтовой
последовательности, начинающейся с s (если был распознан ненулевой
широкий символ).
Возвращается 0, если был распознан нулевой широкий символ.
Если была обнаружена неправильная многобайтовая последовательность,
то возвращается (size_t)(-1) и значение переменной errno меняется
на значение EILSEQ.
Если не получилось выделить полный многобайтовый символ,
то возвращается (size_t)(-2); при этом считается, что n должно увеличиться.