.\" -*- 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 mbsrtowcs 3 "15 июня 2024 г." "Справочные страницы Linux 6.9.1" .SH НАИМЕНОВАНИЕ mbsrtowcs \- convert a multibyte string to a wide\-character string (restartable) .SH БИБЛИОТЕКА Стандартная библиотека языка C (\fIlibc\fP, \fI\-lc\fP) .SH ОБЗОР .nf \fB#include \fP .P \fBsize_t mbsrtowcs(wchar_t \fP\fIdest\fP\fB[restrict .\fP\fIdsize\fP\fB],\fP \fB const char **restrict \fP\fIsrc\fP\fB,\fP \fB size_t \fP\fIdsize\fP\fB, mbstate_t *restrict \fP\fIps\fP\fB);\fP .fi .SH ОПИСАНИЕ If \fIdest\fP is not NULL, convert the multibyte string \fI*src\fP to a wide\-character string starting at \fIdest\fP. At most \fIdsize\fP wide characters are written to \fIdest\fP. The shift state \fI*ps\fP is updated. The conversion is effectively performed by repeatedly calling \fImbrtowc(dest, *src, n, ps)\fP where \fIn\fP is some positive number, as long as this call succeeds, and then incrementing \fIdest\fP by one and \fI*src\fP by the number of bytes consumed. The conversion can stop for three reasons: .IP \[bu] 3 Во входных данных обнаружена неправильная многобайтовая последовательность. В этом случае \fI*src\fP по\-прежнему указывает на неправильную многобайтовую последовательность, возвращается \fI(size_t)\ \-1\fP и \fIerrno\fP присваивается \fBEILSEQ\fP. .IP \[bu] \fIdsize\fP non\-L\[aq]\[rs]0\[aq] wide characters have been stored at \fIdest\fP. In this case, \fI*src\fP is left pointing to the next multibyte sequence to be converted, and the number of wide characters written to \fIdest\fP is returned. .IP \[bu] The multibyte string has been completely converted, including the terminating null wide character (\[aq]\[rs]0\[aq]), which has the side effect of bringing back \fI*ps\fP to the initial state. In this case, \fI*src\fP is set to NULL, and the number of wide characters written to \fIdest\fP, excluding the terminating null wide character, is returned. .P Если \fIdest\fP равно NULL, \fIdsize\fP игнорируется, и преобразование продолжается, как описано выше, за исключением того, что преобразованные широкие символы не записываются в память, и что ограничений по длине не существует. .P В обоих перечисленных случаях, если \fIps\fP равно NULL, то используется статическое анонимное состояние, известное только функции \fBmbsrtowcs\fP(). .P In order to avoid the case 2 above, the programmer should make sure \fIdsize\fP is greater than or equal to \fImbsrtowcs(NULL,src,0,ps)+1\fP. .P Программист должен убедиться, что в \fIdest\fP есть место для символов шириной не менее \fIdsize\fP. .P This function is a restartable version of \fBmbstowcs\fP(3). .SH "ВОЗВРАЩАЕМОЕ ЗНАЧЕНИЕ" The number of wide characters that make up the converted part of the wide\-character string, not including the terminating null wide character. If an invalid multibyte sequence was encountered, \fI(size_t)\ \-1\fP is returned, and \fIerrno\fP set to \fBEILSEQ\fP. .SH АТРИБУТЫ Описание терминов данного раздела смотрите в \fBattributes\fP(7). .TS allbox; lb lb lbx l l l. Интерфейс Атрибут Значение T{ .na .nh \fBmbsrtowcs\fP() T} Безвредность в нитях T{ .na .nh MT\-Unsafe race:mbsrtowcs/!ps T} .TE .SH СТАНДАРТЫ C11, POSIX.1\-2008. .SH ИСТОРИЯ POSIX.1\-2001, C99. .SH ПРИМЕЧАНИЯ Поведение \fBmbsrtowcs\fP() зависит от категории \fBLC_CTYPE\fP текущей локали. .P Передавать NULL в качестве \fIps\fP небезопасно при работе с нитями. .SH "СМОТРИТЕ ТАКЖЕ" \fBiconv\fP(3), \fBmbrtowc\fP(3), \fBmbsinit\fP(3), \fBmbsnrtowcs\fP(3), \fBmbstowcs\fP(3) .PP .SH ПЕРЕВОД Русский перевод этой страницы руководства разработал(и) aereiae , Alexey , Azamat Hackimov , Dmitriy S. Seregin , Dmitry Bolkhovskikh , ITriskTI , Max Is , Yuri Kozlov , Иван Павлов , Малянов Евгений Викторович и Kirill Rekhov . .PP Этот перевод является свободной программной документацией; он распространяется на условиях общедоступной лицензии GNU (GNU General Public License - GPL, .UR https://www.gnu.org/licenses/gpl-3.0.html .UE версии 3 или более поздней) в отношении авторского права, но БЕЗ КАКИХ-ЛИБО ГАРАНТИЙ. .PP Если вы обнаружите какие-либо ошибки в переводе этой страницы руководства, пожалуйста, сообщите об этом разработчику(ам) по его(их) адресу(ам) электронной почты или по адресу .MT списка рассылки русских переводчиков .ME .