Scroll to navigation

MBTOWC(3) Руководство программиста Linux MBTOWC(3)

ИМЯ

mbtowc - преобразовывает мультибайтовую последовательность в широкий символ

СИНТАКСИС

#include <stdlib.h>
int mbtowc(wchar_t *pwc, const char *s, size_t n);

ОПИСАНИЕ

Обычно в эту функцию передают s и pwc не равные NULL. В этом случае функция mbtowc() просматривает не более n байт многобайтовой строки, начиная с s, извлекает следующий полный многобайтовый символ, преобразует его в широкий символ и сохраняет его в *pwc. Она обновляет внутренне состояние сдвига, доступное только функции mbtowc(). Если s не указывает на байт null ('\0'), то она возвращает количество байт, которые были потрачены из s, в противном случае возвращается 0.

Если в n байтах, начиная с s, не содержится полного многобайтового символа или если в них содержится некорректный многобайтовый символ, то mbtowc() возвращает -1. Это может произойти даже если n >= MB_CUR_MAX, если в многобайтовой строке содержится лишние сдвиговые последовательности.

Ещё случай, когда s не равно NULL, а pwc равно NULL. В этом случае функция mbtowc() действует как описано выше, но не сохраняет преобразованный широкий символ в памяти.

И третий вариант, когда s равно NULL. В этом случае pwc и n игнорируются. Функция mbtowc() сбрасывает состояние сдвига, известное только ей, в начальное состояние и возвращает не ноль, если кодировка имеет непростое состояние сдвига, или ноль, если кодировка не имеет состояний.

ВОЗВРАЩАЕМОЕ ЗНАЧЕНИЕ

Если s не равно NULL, то функция mbtowc() возвращает количество потраченных байт, начиная с s, или 0, если s указывает на байт null, или -1 — при ошибке.

Если значение s равно NULL, то функция mbtowc() возвращает не ноль, если кодировка имеет необычное смещение, или ноль, если кодировка не имеет смещения.

АТРИБУТЫ

Описание терминов данного раздела смотрите в attributes(7).

Интерфейс Атрибут Значение
mbtowc() Безвредность в нитях MT-Unsafe race

СООТВЕТСТВИЕ СТАНДАРТАМ

POSIX.1-2001, POSIX.1-2008, C99.

ЗАМЕЧАНИЯ

Поведение mbtowc() зависит от категории LC_CTYPE текущей локали.

Данную функцию небезопасно использовать в нитях. Для этого лучше подходит функция mbrtowc(3) с тем же интерфейсом.

СМ. ТАКЖЕ

MB_CUR_MAX(3), mblen(3), mbrtowc(3), mbstowcs(3), wcstombs(3), wctomb(3)

ЗАМЕЧАНИЯ

Эта страница является частью проекта Linux man-pages версии 5.10. Описание проекта, информацию об ошибках и последнюю версию этой страницы можно найти по адресу https://www.kernel.org/doc/man-pages/.

ПЕРЕВОД

Русский перевод этой страницы руководства был сделан 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>

Этот перевод является бесплатной документацией; прочитайте Стандартную общественную лицензию GNU версии 3 или более позднюю, чтобы узнать об условиях авторского права. Мы не несем НИКАКОЙ ОТВЕТСТВЕННОСТИ.

Если вы обнаружите ошибки в переводе этой страницы руководства, пожалуйста, отправьте электронное письмо на man-pages-ru-talks@lists.sourceforge.net.

6 марта 2019 г. GNU