ИМЯ
mbsinit - проверяет начальное состояние сдвигаLIBRARY
Standard C library ( libc, -lc)СИНТАКСИС
#include <wchar.h>
int mbsinit(const mbstate_t *ps);
ОПИСАНИЕ
Преобразование многобайтового представления символов в представление в виде широких символов (и наоборот) происходит с помощью состояния преобразования (тип mbstate_t). Преобразование строк происходит с помощью конечного автомата; если преобразование прерывается после некоторого количества символов, то может потребоваться сохранить состояние для обработки остальных символов. Это состояние преобразования необходимо, к примеру, для кодировок ISO-2022 и UTF-7. Начальное состояние — это состояние в начале преобразования строки. Есть два типа состояния: первое используется функциями преобразования многобайтовых символов в широкие ( mbsrtowcs(3)); второе используется функциями преобразования широких символов в многобайтовые ( wcsrtombs(3)). Для начального состояния обоих типов используется тип mbstate_t. For 8-bit encodings, all states are equivalent to the initial state. For multibyte encodings like UTF-8, EUC-*, BIG5, or SJIS, the wide character to multibyte conversion functions never produce non-initial states, but the multibyte to wide-character conversion functions like mbrtowc(3) do produce non-initial states when interrupted in the middle of a character. Одним из способов создания mbstate_t в начальном состоянии является присвоение нулевого значения:mbstate_t state; memset(&state, 0, sizeof(state));
В Linux также работает и следующее, но может привести к появлению предупреждения компилятора:
mbstate_t state = { 0 };
Функция mbsinit() проверяет *ps на соответствие начальному состоянию.
ВОЗВРАЩАЕМОЕ ЗНАЧЕНИЕ
Функция mbsinit() возвращает ненулевое значение, если *ps находится в начальном состоянии, или если ps равно NULL. В противном случае возвращается 0.АТРИБУТЫ
Описание терминов данного раздела смотрите в attributes(7).Интерфейс | Атрибут | Значение |
mbsinit() | Безвредность в нитях | MT-Safe |
СТАНДАРТЫ
POSIX.1-2001, POSIX.1-2008, C99.ЗАМЕЧАНИЯ
Поведение mbsinit() зависит от категории LC_CTYPE текущей локали.СМ. ТАКЖЕ
mbrlen(3), mbrtowc(3), mbsrtowcs(3), wcrtomb(3), wcsrtombs(3)ПЕРЕВОД
Русский перевод этой страницы руководства был сделан aereiae <[email protected]>, Alexey <[email protected]>, Azamat Hackimov <[email protected]>, Dmitriy S. Seregin <[email protected]>, Dmitry Bolkhovskikh <[email protected]>, ITriskTI <[email protected]>, Max Is <[email protected]>, Yuri Kozlov <[email protected]>, Иван Павлов <[email protected]> и Малянов Евгений Викторович <[email protected]> Этот перевод является бесплатной документацией; прочитайте Стандартную общественную лицензию GNU версии 3 или более позднюю, чтобы узнать об условиях авторского права. Мы не несем НИКАКОЙ ОТВЕТСТВЕННОСТИ. Если вы обнаружите ошибки в переводе этой страницы руководства, пожалуйста, отправьте электронное письмо на [email protected]15 декабря 2022 г. | Linux man-pages 6.03 |