wcstombs -
преобразует
широкосимвольную
строку в
многобайтовую
строку
Standard C library (
libc,
-lc)
#include <stdlib.h>
size_t wcstombs(char dest[restrict .n], const wchar_t *restrict src,
size_t n);
Если
значение
dest
не равно NULL,
то функция
wcstombs()
преобразует
широкосимвольную
строку
src в
многобайтовую
строку,
начинающуюся
с
dest. В
dest
будет
записано
не более
n
байт.
Последовательность
символов,
помещённая
в
dest,
начинается
с
первоначальным
состоянием
сдвига.
Преобразование
может
прекратиться
по трём
причинам:
- •
- Встретившийся
широкий
символ
нельзя
представить
в виде
многобайтовой
последовательности
(в
соответствии
с текущей
системной
локалью). В
этом
случае
возвращается
(size_t) -1.
- •
- Достигнут
предел по
длине. В
этом
случае
возвращается
количество
байтов,
записанных
в dest, но
состояние
текущего
смещения в
строке
теряется.
- •
- The wide-character string has been completely converted,
including the terminating null wide character (L'\0'). In this case, the
conversion ends in the initial shift state. The number of bytes written to
dest, excluding the terminating null byte ('\0'), is returned.
Программист
должен
быть
уверен, что
в
dest
достаточно
места для,
по крайней
мере,
n байт.
Если
значение
dest
равно NULL, то
n
игнорируется
и
преобразование
выполняется
как
описано
выше,
исключая
то, что
преобразованные
байты не
записываются
в память и
нет
ограничения
по длине.
Для того,
чтобы
избежать
ограничения
пункта 2,
программист
должен
удостовериться,
что
значение
n
больше или
равно
wcstombs(NULL,src,0)+1.
Функция
wcstombs()
возвращает
количество
байт в
полученной
многобайтовой
последовательности,
не включая
завершающий
байт null. Если
встречается
широкий
символ,
который
невозможно
преобразовать,
возвращается
(size_t) -1.
Описание
терминов
данного
раздела
смотрите в
attributes(7).
Интерфейс |
Атрибут |
Значение |
wcstombs() |
Безвредность
в нитях |
MT-Safe |
POSIX.1-2001, POSIX.1-2008, C99.
Поведение
wcstombs() зависит
от
категории
LC_CTYPE текущей
локали.
Функция
wcsrtombs(3)
предоставляет
лучший
интерфейс
с теми же
возможностями.
mblen(3),
mbstowcs(3),
mbtowc(3),
wcsrtombs(3),
wctomb(3)
Русский
перевод
этой
страницы
руководства
был сделан
Azamat Hackimov <
[email protected]> и Yuri Kozlov
<
[email protected]>
Этот
перевод
является
бесплатной
документацией;
прочитайте
Стандартную
общественную
лицензию GNU
версии 3
или более
позднюю,
чтобы
узнать об
условиях
авторского
права. Мы не
несем
НИКАКОЙ
ОТВЕТСТВЕННОСТИ.
Если вы
обнаружите
ошибки в
переводе
этой
страницы
руководства,
пожалуйста,
отправьте
электронное
письмо на
[email protected]