.\" -*- 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 MBTOWC 3 "6 марта 2019 г." GNU "Руководство программиста Linux" .SH ИМЯ mbtowc \- преобразовывает мультибайтовую последовательность в широкий символ .SH СИНТАКСИС .nf \fB#include \fP .PP \fBint mbtowc(wchar_t *\fP\fIpwc\fP\fB, const char *\fP\fIs\fP\fB, size_t \fP\fIn\fP\fB);\fP .fi .SH ОПИСАНИЕ Обычно в эту функцию передают \fIs\fP и \fIpwc\fP не равные NULL. В этом случае функция \fBmbtowc\fP() просматривает не более \fIn\fP байт многобайтовой строки, начиная с \fIs\fP, извлекает следующий полный многобайтовый символ, преобразует его в широкий символ и сохраняет его в \fI*pwc\fP. Она обновляет внутренне состояние сдвига, доступное только функции \fBmbtowc\fP(). Если \fIs\fP не указывает на байт null (\(aq\e0\(aq), то она возвращает количество байт, которые были потрачены из \fIs\fP, в противном случае возвращается 0. .PP Если в \fIn\fP байтах, начиная с \fIs\fP, не содержится полного многобайтового символа или если в них содержится некорректный многобайтовый символ, то \fBmbtowc\fP() возвращает \-1. Это может произойти даже если \fIn\fP >= \fIMB_CUR_MAX\fP, если в многобайтовой строке содержится лишние сдвиговые последовательности. .PP Ещё случай, когда \fIs\fP не равно NULL, а \fIpwc\fP равно NULL. В этом случае функция \fBmbtowc\fP() действует как описано выше, но не сохраняет преобразованный широкий символ в памяти. .PP .\" The Dinkumware doc and the Single UNIX specification say this, but .\" glibc doesn't implement this. И третий вариант, когда \fIs\fP равно NULL. В этом случае \fIpwc\fP и \fIn\fP игнорируются. Функция \fBmbtowc\fP() сбрасывает состояние сдвига, известное только ей, в начальное состояние и возвращает не ноль, если кодировка имеет непростое состояние сдвига, или ноль, если кодировка не имеет состояний. .SH "ВОЗВРАЩАЕМОЕ ЗНАЧЕНИЕ" Если \fIs\fP не равно NULL, то функция \fBmbtowc\fP() возвращает количество потраченных байт, начиная с \fIs\fP, или 0, если \fIs\fP указывает на байт null, или \-1 — при ошибке. .PP Если значение \fIs\fP равно NULL, то функция \fBmbtowc\fP() возвращает не ноль, если кодировка имеет необычное смещение, или ноль, если кодировка не имеет смещения. .SH АТРИБУТЫ Описание терминов данного раздела смотрите в \fBattributes\fP(7). .TS allbox; lb lb lb l l l. Интерфейс Атрибут Значение T{ \fBmbtowc\fP() T} Безвредность в нитях MT\-Unsafe race .TE .SH "СООТВЕТСТВИЕ СТАНДАРТАМ" POSIX.1\-2001, POSIX.1\-2008, C99. .SH ЗАМЕЧАНИЯ Поведение \fBmbtowc\fP() зависит от категории \fBLC_CTYPE\fP текущей локали. .PP Данную функцию небезопасно использовать в нитях. Для этого лучше подходит функция \fBmbrtowc\fP(3) с тем же интерфейсом. .SH "СМ. ТАКЖЕ" \fBMB_CUR_MAX\fP(3), \fBmblen\fP(3), \fBmbrtowc\fP(3), \fBmbstowcs\fP(3), \fBwcstombs\fP(3), \fBwctomb\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 .