mbrtowc()

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

Прототип:

#include <wchar.h>
size_t mbrtowc( wchar_t *pwc,
const char *s,
size_t n,
mbstate_t *ps );

Аргументы:

pwc
Указатель на объект типа wchar_t, куда функция сохранит широкий символ.
s
Указатель на конвертируемый многобайтовый символ.
n
Максимальный размер многобайтового символа.
ps
Указатель, позволяющий функции mbrtowc() быть перезапускаемой версией функции mbtowc(); если ps равен NULL, mbrtowc() использует внутреннюю переменную вместо ps. Вы можете вызвать mbsinit() для проверки статуса ps.

Библиотека:

libc

Описание:

Функция mbrtowc() конвертирует один многобайтовый символ, находящийся в строке s в широкий символ pwc, максимальный размер многобайтового символа указан в аргументе n.

На результат работы функции влияет значение LC_TYPE.

Возвращаемое значение:

(size_t)-2
После преобразования всех n байт, результирующее состояние преобразования указывает, что был передан неполный многобайтовый символ.
(size_t)-1
Обнаружена ошибка кодирования до завершения обработки многобайтового символа, в переменной errno будет сохранено значение EILSEQ, результирующее значение состояния преобразования неопределённо.
0
Обнаружен нуль-терминатор, значение состояния преобразования вернётся к начальному.
x
Число байт, необходимое для завершения многобайтового символа, результирующее значение состояние преобразования указывает, что преобразовано x байт.

Коды ошибок:

EILSEQ
Некорректная последовательность символов.
EINVAL
Аргумент ps указывает на повреждённый объект.

Классификация:

ANSI, POSIX 1003.1

Безопасность использования
Точка остановки потока
Нет
Обработчик прерываний
Нет
Обработчик сигналов
Да
В потоке
Да

Тематические ссылки:

errno, mblen(), mbrlen(), mbsinit(), mbsrtowcs(), mbstowcs(), mbtowc()




Предыдущий раздел: Описание API системной библиотеки