.\" -*- coding: UTF-8 -*- .\" Copyright (c) Bruno Haible .\" .\" %%%LICENSE_START(GPLv2+_DOC_ONEPARA) .\" This is free documentation; you can redistribute it and/or .\" modify it under the terms of the GNU General Public License as .\" published by the Free Software Foundation; either version 2 of .\" the License, or (at your option) any later version. .\" %%%LICENSE_END .\" .\" References consulted: .\" GNU glibc-2 source code and manual .\" Dinkumware C library reference http://www.dinkumware.com/ .\" OpenGroup's Single UNIX specification .\" http://www.UNIX-systems.org/online.html .\" ISO/IEC 9899:1999 .\" .\"******************************************************************* .\" .\" This file was generated with po4a. Translate the source file. .\" .\"******************************************************************* .TH MBRTOWC 3 "6 марта 2019 г." GNU "Руководство программиста Linux" .SH ИМЯ mbrtowc \- преобразовывает мультибайтовую последовательность в широкий символ .SH СИНТАКСИС .nf \fB#include \fP .PP \fBsize_t mbrtowc(wchar_t *\fP\fIpwc\fP\fB, const char *\fP\fIs\fP\fB, size_t \fP\fIn\fP\fB, mbstate_t *\fP\fIps\fP\fB);\fP .fi .SH ОПИСАНИЕ В основном, функция предназначена для работы, когда \fIs\fP и \fIpwc\fP не равны NULL. В этом случае функция \fBmbrtowc\fP() просматривает не более \fIn\fP байт многобайтовой строки, начинающейся с \fIs\fP, извлекает следующий полный многобайтовый символ, преобразует его в широкий символ и сохраняет его в \fI*pwc\fP. При этом обновляется состояние сдвига \fI*ps\fP. Если преобразованный широкий символ не равен L\(aq\e0\(aq (широкий символ null), то возвращается количество байт, которое было выбрано из \fIs\fP. Если преобразованный широкий символ равен L\(aq\e0\(aq, то состояние сдвига \fI*ps\fP сбрасывается в начальное состояние и возвращается 0. .PP Если в \fIn\fP байтах, начиная с \fIs\fP, не содержится полного многобайтового символа, то \fBmbrtowc\fP() возвращает \fI(size_t)\ \-2\fP. Это может произойти даже, если \fIn\fP >= \fIMB_CUR_MAX\fP, если в многобайтовой строке содержится лишние сдвиговые последовательности. .PP Если многобайтовая строка, начинающаяся с \fIs\fP, содержит некорректную многобайтовую последовательность до следующего полного символа, то \fBmbrtowc\fP() возвращает \fI(size_t)\ \-1\fP и присваивает \fIerrno\fP значение \fBEILSEQ\fP. В этом случае влияние на \fI*ps\fP не определено. .PP Ещё случай, когда \fIs\fP не равно NULL, а \fIpwc\fP равно NULL. В этом случае функция \fBmbrtowc\fP() действует как описано выше, но не сохраняет преобразованный широкий символ в памяти. .PP И третий случай, когда \fIs\fP равно NULL. В этом случае \fIpwc\fP и \fIn\fP игнорируются. Если состояние преобразования, представляемое \fI*ps\fP означает неполный многобайтовый символ, то функция \fBmbrtowc\fP() возвращает \fI(size_t)\ \-1\fP, присваивает \fIerrno\fP значение \fBEILSEQ\fP и оставляет \fI*ps\fP в неопределённом состоянии. Иначе функция \fBmbrtowc\fP() изменяет \fI*ps\fP в начальное состояние и возвращает 0. .PP Во всех вышеперечисленных случаях, если \fIps\fP равно NULL, то используется статическое анонимное состояние, известное только функции \fBmbrtowc\fP(). Иначе \fI*ps\fP должен быть корректным объектом \fImbstate_t\fP. Объект \fImbstate_t\fP \fIa\fP может быть переведён в начальное состояние, если его обнулить, например с помощью .PP .in +4n .EX memset(&a, 0, sizeof(a)); .EE .in .SH "ВОЗВРАЩАЕМОЕ ЗНАЧЕНИЕ" Функция \fBmbrtowc\fP() возвращает количество байт, просмотренных в многобайтовой последовательности, начинающейся с \fIs\fP, если при этом был получен широкий символ не равный L\(aq\e0\(aq. Она возвращает 0, если был получен широкий символ L\(aq\e0\(aq. Она возвращает \fI(size_t)\ \-1\fP и присваивает \fIerrno\fP значение \fBEILSEQ\fP, если встречена некорректная многобайтовая последовательность. Она возвращает \fI(size_t)\ \-2\fP, если не удалось найти полную многобайтовую последовательность, что означает, что \fIn\fP должно быть увеличено. .SH АТРИБУТЫ Описание терминов данного раздела смотрите в \fBattributes\fP(7). .TS allbox; lb lb lb l l l. Интерфейс Атрибут Значение T{ \fBmbrtowc\fP() T} Безвредность в нитях MT\-Unsafe race:mbrtowc/!ps .TE .SH "СООТВЕТСТВИЕ СТАНДАРТАМ" POSIX.1\-2001, POSIX.1\-2008, C99. .SH ЗАМЕЧАНИЯ Поведение \fBmbrtowc\fP() зависит от категории \fBLC_CTYPE\fP текущей локали. .SH "СМ. ТАКЖЕ" \fBmbsinit\fP(3), \fBmbsrtowcs\fP(3) .SH ЗАМЕЧАНИЯ Эта страница является частью проекта Linux \fIman\-pages\fP версии 5.10. Описание проекта, информацию об ошибках и последнюю версию этой страницы можно найти по адресу \%https://www.kernel.org/doc/man\-pages/. .PP .SH ПЕРЕВОД Русский перевод этой страницы руководства был сделан aereiae , Alexey , Azamat Hackimov , Dmitriy S. Seregin , Dmitry Bolkhovskikh , ITriskTI , Max Is , Yuri Kozlov , Иван Павлов и Малянов Евгений Викторович . .PP Этот перевод является бесплатной документацией; прочитайте .UR https://www.gnu.org/licenses/gpl-3.0.html Стандартную общественную лицензию GNU версии 3 .UE или более позднюю, чтобы узнать об условиях авторского права. Мы не несем НИКАКОЙ ОТВЕТСТВЕННОСТИ. .PP Если вы обнаружите ошибки в переводе этой страницы руководства, пожалуйста, отправьте электронное письмо на .MT man-pages-ru-talks@lists.sourceforge.net .ME .