Man page - mbrtowc(3)

Packages contains this manual

Available languages:

en fr es ja ru ro

Manual

mbrtowc

НАИМЕНОВАНИЕ
БИБЛИОТЕКА
ОБЗОР
ОПИСАНИЕ
ВОЗВРАЩАЕМОЕ ЗНАЧЕНИЕ
АТРИБУТЫ
СТАНДАРТЫ
ИСТОРИЯ
ПРИМЕЧАНИЯ
СМОТРИТЕ ТАКЖЕ
ПЕРЕВОД

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

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

БИБЛИОТЕКА

Стандартная библиотека языка C ( libc , -lc )

ОБЗОР

#include <wchar.h>

size_t mbrtowc(wchar_t *restrict pwc , const char s [restrict . n ],
size_t
n , mbstate_t *restrict ps );

ОПИСАНИЕ

The main case for this function is when s is not NULL and pwc is not NULL. In this case, the mbrtowc () function inspects at most n bytes of the multibyte string starting at s , extracts the next complete multibyte character, converts it to a wide character and stores it at *pwc . It updates the shift state *ps . If the converted wide character is not L'\0' (the null wide character), it returns the number of bytes that were consumed from s . If the converted wide character is L'\0', it resets the shift state *ps to the initial state and returns 0.

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

Если многобайтовая строка, начинающаяся с s , содержит некорректную многобайтовую последовательность до следующего полного символа, то mbrtowc () возвращает (size_t) -1 и присваивает errno значение EILSEQ . В этом случае влияние на *ps не определено.

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

И третий случай, когда s равно NULL. В этом случае pwc и n игнорируются. Если состояние преобразования, представляемое *ps означает неполный многобайтовый символ, то функция mbrtowc () возвращает (size_t) -1 , присваивает errno значение EILSEQ и оставляет *ps в неопределённом состоянии. Иначе функция mbrtowc () изменяет *ps в начальное состояние и возвращает 0.

Во всех вышеперечисленных случаях, если ps равно NULL, то используется статическое анонимное состояние, известное только функции mbrtowc (). Иначе *ps должен быть корректным объектом mbstate_t . Объект mbstate_t a может быть переведён в начальное состояние, если его обнулить, например с помощью

memset(&a, 0, sizeof(a));

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

The mbrtowc () function returns the number of bytes parsed from the multibyte sequence starting at s , if a non-L'\0' wide character was recognized. It returns 0, if a L'\0' wide character was recognized. It returns (size_t) -1 and sets errno to EILSEQ , if an invalid multibyte sequence was encountered. It returns (size_t) -2 if it couldn’t parse a complete multibyte character, meaning that n should be increased.

АТРИБУТЫ

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

Image grohtml-630845-1.png

СТАНДАРТЫ

C11, POSIX.1-2008.

ИСТОРИЯ

POSIX.1-2001, C99.

ПРИМЕЧАНИЯ

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

СМОТРИТЕ ТАКЖЕ

mbsinit (3), mbsrtowcs (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 или более поздней) в отношении авторского права, но БЕЗ КАКИХ-ЛИБО ГАРАНТИЙ.

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