Преобразование объектов в двубайтовые символы

Стандартная библиотека поддерживает различные функции, предназначенные для преобразования многобайтовых объектов в символы широкого формата (и обратно). Эти функции (перечисленные в следующей таблице) используют заголовок <wchar.h>. Многие из них представляют собой повторно запускаемые (restartable) версии обычных многобайтовых функций. Повторно запускаемая версия использует информацию о состоянии, передаваемую ей в параметре типа mbstate_t. Если этот параметр нулевой, функция предоставит собственный объект типа mbstate_t.

Функция Описание
win_t btowc(int ch) Преобразует параметр ch в его двубайтовый эквивалент и воз вращает результат. При ошибке возвращает значение WEOF или, если ch не однобайтовый, многобайтовый символ
size_t mbrlen(const char *str, size_t num, mbstate_t *state) Повторно запускаемая версия функции mblen(), в которой информация о состоянии передается параметром state. Возвращает положительное число, означающее длину следующего многобайтового символа. Нуль возвращается в случае, если следующий символ - нулевой. При ошибке возвращается отрицательное значение. В версии С99 к параметрам strnstate применен квалификатор restrict
size_t mbrtowc(wchar_t *out, const char *in, size_t num, mbstate_t *state) Повторно запускаемая версия функции mbtowc(), в которой информация о состоянии передается параметром state. Возвращает положительное число, означающее длину следующего многобайтового символа. Нуль возвращается в случае, если следующий символ - нулевой. При ошибке возвращается значение -1 и переменной errno присваивается макрос EILSEQ. Если преобразование не завершено, возвращается число -2. В версии С99 к параметрам out, in и state применен квалификатор restrict
int mbsinit(const mbstate_t *state) Возвращает значение true, если параметр state представляет начальное состояние процесса преобразования
size_t mbsrtowcs(wchar_t *out, const char **in, size_t num, mbstate_t *state) Повторно запускаемая версия функции mbstowcs(), в которой информация о состоянии передается параметром state. Кроме того, функция mbsrtowcs() отличается от функции mbstowcs() тем, что параметр in является косвенным указателем на исходный массив. При ошибке переменной errno присваивается макрос EILSEQ. В версии С99 к параметрам out, in и state применен квалификатор restrict
size_t wcrtomb(char *out, wchar_t ch, mbstate_t *state) Повторно запускаемая версия функции wctomb(), в которой информация о состоянии передается параметром state. При ошибке переменной errno присваивается макрос EILSEQ. В версии С99 к параметрам out и state применен квалификатор restrict
size_t wcsrtombs(char *out, const wchar_t **in, size_t num, mbstate_t *state) Повторно запускаемая версия функции wcstombs (), в которой информация о состоянии передается параметром state. Кроме того, функция wcsrtombs() отличается от функции wcstombs() тем, что параметр in является косвенным указателем на исходный массив. При ошибке переменной errno присваивается макрос EILSEQ. В версии С99 к параметрам out, in и state применен квалификатор restrict
int wctob(wint_t ch) Преобразует параметр ch в его однобайтовый эквивалент. При сбое функция возвращает значение EOF