.\" -*- coding: UTF-8 -*- '\" t .\" Copyright (c) Bruno Haible .\" .\" SPDX-License-Identifier: GPL-2.0-or-later .\" .\" 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 "31 октября 2023 г." "Linux man\-pages 6.06" .SH ИМЯ mbrtowc \- преобразовывает мультибайтовую последовательность в широкий символ .SH LIBRARY Standard C library (\fIlibc\fP, \fI\-lc\fP) .SH СИНТАКСИС .nf \fB#include \fP .P \fBsize_t mbrtowc(wchar_t *restrict \fP\fIpwc\fP\fB, const char \fP\fIs\fP\fB[restrict .\fP\fIn\fP\fB],\fP \fB size_t \fP\fIn\fP\fB, mbstate_t *restrict \fP\fIps\fP\fB);\fP .fi .SH ОПИСАНИЕ The main case for this function is when \fIs\fP is not NULL and \fIpwc\fP is not NULL. In this case, the \fBmbrtowc\fP() function inspects at most \fIn\fP bytes of the multibyte string starting at \fIs\fP, extracts the next complete multibyte character, converts it to a wide character and stores it at \fI*pwc\fP. It updates the shift state \fI*ps\fP. If the converted wide character is not L\[aq]\e0\[aq] (the null wide character), it returns the number of bytes that were consumed from \fIs\fP. If the converted wide character is L\[aq]\e0\[aq], it resets the shift state \fI*ps\fP to the initial state and returns 0. .P Если в \fIn\fP байтах, начиная с \fIs\fP, не содержится полного многобайтового символа, то \fBmbrtowc\fP() возвращает \fI(size_t)\ \-2\fP. Это может произойти даже, если \fIn\fP >= \fIMB_CUR_MAX\fP, если в многобайтовой строке содержится лишние сдвиговые последовательности. .P Если многобайтовая строка, начинающаяся с \fIs\fP, содержит некорректную многобайтовую последовательность до следующего полного символа, то \fBmbrtowc\fP() возвращает \fI(size_t)\ \-1\fP и присваивает \fIerrno\fP значение \fBEILSEQ\fP. В этом случае влияние на \fI*ps\fP не определено. .P Ещё случай, когда \fIs\fP не равно NULL, а \fIpwc\fP равно NULL. В этом случае функция \fBmbrtowc\fP() действует как описано выше, но не сохраняет преобразованный широкий символ в памяти. .P И третий случай, когда \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. .P Во всех вышеперечисленных случаях, если \fIps\fP равно NULL, то используется статическое анонимное состояние, известное только функции \fBmbrtowc\fP(). Иначе \fI*ps\fP должен быть корректным объектом \fImbstate_t\fP. Объект \fImbstate_t\fP \fIa\fP может быть переведён в начальное состояние, если его обнулить, например с помощью .P .in +4n .EX memset(&a, 0, sizeof(a)); .EE .in .SH "ВОЗВРАЩАЕМОЕ ЗНАЧЕНИЕ" The \fBmbrtowc\fP() function returns the number of bytes parsed from the multibyte sequence starting at \fIs\fP, if a non\-L\[aq]\e0\[aq] wide character was recognized. It returns 0, if a L\[aq]\e0\[aq] wide character was recognized. It returns \fI(size_t)\ \-1\fP and sets \fIerrno\fP to \fBEILSEQ\fP, if an invalid multibyte sequence was encountered. It returns \fI(size_t)\ \-2\fP if it couldn't parse a complete multibyte character, meaning that \fIn\fP should be increased. .SH АТРИБУТЫ Описание терминов данного раздела смотрите в \fBattributes\fP(7). .TS allbox; lbx lb lb l l l. Интерфейс Атрибут Значение T{ .na .nh \fBmbrtowc\fP() T} Безвредность в нитях MT\-Unsafe race:mbrtowc/!ps .TE .SH СТАНДАРТЫ C11, POSIX.1\-2008. .SH ИСТОРИЯ POSIX.1\-2001, C99. .SH ЗАМЕЧАНИЯ Поведение \fBmbrtowc\fP() зависит от категории \fBLC_CTYPE\fP текущей локали. .SH "СМ. ТАКЖЕ" \fBmbsinit\fP(3), \fBmbsrtowcs\fP(3) .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 .