Высчитать количество байт в многобайтовом символе (с повторным запуском)
#include <wchar.h>
size_t mbrlen( const char *s,
size_t n,
mbstate_t *ps );
- s
- Указатель на многобайтовый символ.
- n
- Максимальный размер многобайтового символа.
- ps
- Указатель, который позволяет mbrlen() быть перезапускаемой версией функции mblen(); если ps равен
NULL
, mbrlen() использует внутреннюю переменную вместо ps. Можно вызвать mbsinit(), чтобы определить статус данной переменной.
libc
Функция mbrlen() подсчитывает размер многобайтового символа, начинающегося с s. Максимальный размер символа указывается в аргументе n.
- (size_t)-2
- Получен неполный многобайтовый символ в результате преобразования всех n байт.
- (size_t)-1
- Обнаружена ошибка кодирования до завершения обработки многобайтового символа, в переменной errno будет сохранено значение
EILSEQ
, результирующее значение состояния преобразования неопределённо.
- 0
- Обнаружен нуль-терминатор, значение состояния преобразования вернётся к начальному.
- x
- Размер найденного многобайтового символа, результирующее значение состояния преобразования укажет на то, что преобразовано x байт.
- EILSEQ
- Некорректная последовательность символов.
- EINVAL
- Аргумент ps указывает на повреждённый объект.
ANSI, POSIX 1003.1
- Нет
- Обработчик прерываний
- Нет
- Обработчик сигналов
- Да
- В потоке
- Да
errno mblen(), mbrtowc(), mbsinit(), mbsrtowcs(), mbstowcs(), mbtowc()
Предыдущий раздел: Описание API системной библиотеки