MBSINIT(3)

НАЗВАНИЕ
mbsinit - проверяет начальное состояние смещения

СИНТАКСИС
#include <wchar.h>

int mbsinit(const mbstate_t *ps);

ОПИСАНИЕ
Преобразование многобайтового представления символов в представление в виде широких символов (и наоборот) происходит с помощью состояния преобразования типа mbstate_t. Преобразование строк происходит с помощью функций конечной обработки; если они закончили полное преобразование некоторого количества символов, то, возможно, в дальнейшем потребуется сохранить этот статус для преобразования остальных символов. Такой статус преобразований необходим, к примеру, для кодировок ISO-2022 и UTF-7.

Начальное состояние является состоянием в начале преобразования строки. Есть два типа состояния: одни используется функциями преобразования многобайтовых строк в широкие символы, такими, как mbsrtowcs, а другие используются функциями преобразования широких символов в многобайтовые строки, такими, как wcsrtombs; но все они вмещаются в mbstate_t и имеют одинаковое представление в начальном состоянии.

Все состояния 8-битных кодировок соответствуют начальному состоянию. Для многобайтовых кодировок - UTF-8, EUC-*, BIG5 или SJIS, функция преобразования из широкого символа в многобайтовую последовательность никогда не выводит неисходные состояния, но функция преобразования (напр. mbrtowc) многобайтовой последовательности в широкий символ выводит неисходные состояния, когда прерывается в середине символа.

Одним из способов создания mbstate_t в его начальном состоянии будет установка его нулевого значения:
  mbstate_t state;
  memset(&state,0,sizeof(mbstate_t));
В Linux это является действенным, но может привести к появлению следующего предупреждения компилятора:
  mbstate_t state = { 0 };

Функция mbsinit проверяет соответствие *ps начальному состоянию.

ВОЗВРАЩАЕМЫЕ ЗНАЧЕНИЯ
Функция mbsinit возвращает ненулевое значение, если *ps является начальным состоянием или если ps является null-указателем. Иначе возвращается 0.

СООТВЕТСТВИЕ СТАНДАРТАМ
ISO/ANSI C, UNIX98

СМ. ТАКЖЕ
mbsrtowcs(3), wcsrtombs(3)

ЗАМЕЧАНИЯ
Поведение mbsinit зависит от категории LC_CTYPE текущей локали.