mbsrtowcs()

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

Прототип:

#include <wchar.h>
size_t mbsrtowcs( wchar_t *dst,
const char **src,
size_t n,
mbstate_t *ps );

Аргументы:

dst
Буфер, где функция будет хранить строку широких символов.
src
Строка многобайтовых символов.
n
Максимальное количество широких символов, которые можно сохранить в буфер dst.
ps
Указатель, позволяющий функции mbsrtowcs() быть перезапускаемой версией функции mbstowcs(); если ps равен NULL, mbsrtowcs() использует внутреннюю переменную вместо ps. Вы можете вызвать mbsinit() для проверки статуса ps.

Библиотека:

libc

Описание:

Функция mbsrtowcs() конвертирует строку многобайтовых символов src в соответствующий набор широких символов dst, аргумент n указывает максимальное число широких символов, включая нуль-терминатор.

Функция конвертирует каждый символ, как при вызове mbtowc(), и останавливает выполнение, если:

Функция зависит от LC_TYPE.

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

(size_t)-1
Возникла ошибка. Ошибочный код многобайтового символа.
x
Успешное завершение, возвращается число конвертированных символов, не включая нуль-терминатор.

Коды ошибок:

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

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

ANSI, POSIX 1003.1

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

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

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




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