Scroll to navigation

mbsinit(3) Library Functions Manual mbsinit(3)

НАИМЕНОВАНИЕ

mbsinit - проверяет начальное состояние сдвига

БИБЛИОТЕКА

Стандартная библиотека языка C (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 <aereiae@gmail.com>, Alexey <a.chepugov@gmail.com>, Azamat Hackimov <azamat.hackimov@gmail.com>, Dmitriy S. Seregin <dseregin@59.ru>, Dmitry Bolkhovskikh <d20052005@yandex.ru>, ITriskTI <ITriskTI@gmail.com>, Max Is <ismax799@gmail.com>, Yuri Kozlov <yuray@komyakino.ru>, Иван Павлов <pavia00@gmail.com>, Малянов Евгений Викторович <maljanow@outlook.com> и Kirill Rekhov <krekhov.dev@gmail.com>

Этот перевод является свободной программной документацией; он распространяется на условиях общедоступной лицензии GNU (GNU General Public License - GPL, https://www.gnu.org/licenses/gpl-3.0.html версии 3 или более поздней) в отношении авторского права, но БЕЗ КАКИХ-ЛИБО ГАРАНТИЙ.

Если вы обнаружите какие-либо ошибки в переводе этой страницы руководства, пожалуйста, сообщите об этом разработчику(ам) по его(их) адресу(ам) электронной почты или по адресу списка рассылки русских переводчиков.

15 декабря 2022 г. Справочные страницы Linux 6.03