WCSTOMBS(3)

НАЗВАНИЕ
wcstombs - преобразование строки широких символов в многобайтовую строку

СИНТАКСИС
#include <stdlib.h>

size_t wcstombs(char *dest, const wchar_t *src, size_t n);

ОПИСАНИЕ
Если dest - это не указатель на NULL, то функция wcstombs преобразует строку широких символов src в многобайтовую строку, начинающуюся с dest. Максимум n символов будут записаны в dest. Преобразование начинается с начала строки и может быть прекращено по трем причинам:

1. Встретившийся широкий символ не может быть представлен в виде многобайтовой последовательности (в соответствии с текущей системной локалью). В этом случае возвращается (size_t)(-1).

2. Достигнут лимит длины. В этом случае возвращается количество байтов, записанных в dest, но состояние текущего смещения в строке будет утеряно.

3. Строка широких символов была полностью преобразована, включая завершающий сивол L'\0'. В этом случае будет возвращено количество записанных в dest байтов, исключая завершающий '\0'.

Программист должен убедиться, что существует достаточно места хотя бы для n байтов в строке dest.

Если dest равен NULL, n игнорируется и конвертирование продолжается, как описано выше, исключая то, что конвертированные байты не записываются непосредственно в память и длина их не ограничена.

Для того чтобы избежать ограничения #2, программист должен удостовериться, что n больше wcstombs(NULL,src,0)+1 или равен ему.

ВОЗВРАЩАЕМЫЕ ЗНАЧЕНИЯ
Функция wcstombs возвращает количество байтов в полученной многобайтовой последовательности, не включая завершающий нулевой байт. Если встречается широкий символ, который невозможно преобразовать, возвращается (size_t)(-1).

СООТВЕТСТВИЕ СТАНДАРТАМ
ISO/ANSI C, UNIX98

СМ. ТАКЖЕ
wcsrtombs(3)

ЗАМЕЧАНИЯ
Поведение функции wcstombs зависит от категории LC_CTYPE текущей системной локали.

Функция wcsrtombs предоставляет Вам многофункциональный интерфейс с теми же возможностями.