mbrlen()

Высчитать количество байт в многобайтовом символе (с повторным запуском)

Прототип:

#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 системной библиотеки