mbtowc(3) | Library Functions Manual | mbtowc(3) |
ИМЯ
mbtowc - преобразовывает мультибайтовую последовательность в широкий символ
БИБЛИОТЕКА
Стандартная библиотека языка C (libc, -lc)
СИНТАКСИС
#include <stdlib.h>
int mbtowc(wchar_t *restrict pwc, const char s[restrict .n], size_t n);
ОПИСАНИЕ
The main case for this function is when s is not NULL and pwc is not NULL. In this case, the mbtowc() 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 an internal shift state known only to the mbtowc() function. If s does not point to a null byte ('\0'), it returns the number of bytes that were consumed from s, otherwise it returns 0.
Если в n байтах, начиная с s, не содержится полного многобайтового символа или если в них содержится некорректный многобайтовый символ, то mbtowc() возвращает -1. Это может произойти даже если n >= MB_CUR_MAX, если в многобайтовой строке содержится лишние сдвиговые последовательности.
Ещё случай, когда s не равно NULL, а pwc равно NULL. В этом случае функция mbtowc() действует как описано выше, но не сохраняет преобразованный широкий символ в памяти.
И третий вариант, когда s равно NULL. В этом случае pwc и n игнорируются. Функция mbtowc() сбрасывает состояние сдвига, известное только ей, в начальное состояние и возвращает не ноль, если кодировка имеет непростое состояние сдвига, или ноль, если кодировка не имеет состояний.
ВОЗВРАЩАЕМОЕ ЗНАЧЕНИЕ
Если s не равно NULL, то функция mbtowc() возвращает количество потраченных байт, начиная с s, или 0, если s указывает на байт null, или -1 — при ошибке.
Если значение s равно NULL, то функция mbtowc() возвращает не ноль, если кодировка имеет необычное смещение, или ноль, если кодировка не имеет смещения.
АТРИБУТЫ
Описание терминов данного раздела смотрите в attributes(7).
Интерфейс | Атрибут | Значение |
mbtowc() | Безвредность в нитях | MT-Unsafe race |
ВЕРСИИ
Данную функцию небезопасно использовать в нитях. Для этого лучше подходит функция mbrtowc(3) с тем же интерфейсом.
СТАНДАРТЫ
C11, POSIX.1-2008.
ИСТОРИЯ
POSIX.1-2001, C99.
ПРИМЕЧАНИЯ
Поведение mbtowc() зависит от категории LC_CTYPE текущей локали.
СМОТРИТЕ ТАКЖЕ
MB_CUR_MAX(3), mblen(3), mbrtowc(3), mbstowcs(3), wcstombs(3), wctomb(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>
Этот перевод является свободной программной документацией; он распространяется на условиях общедоступной лицензии GNU (GNU General Public License - GPL, https://www.gnu.org/licenses/gpl-3.0.html версии 3 или более поздней) в отношении авторского права, но БЕЗ КАКИХ-ЛИБО ГАРАНТИЙ.
Если вы обнаружите какие-либо ошибки в переводе этой страницы руководства, пожалуйста, сообщите об этом разработчику(ам) по его(их) адресу(ам) электронной почты или по адресу списка рассылки русских переводчиков.
15 июня 2024 г. | Справочные страницы Linux 6.9.1 |