wctomb, _wctomb_l
Преобразует расширенный символ в соответствующий многобайтовый символ. Существуют более безопасные версии этих функций; см. раздел wctomb_s, _wctomb_s_l.
int wctomb(
char *mbchar,
wchar_t wchar
);
int _wctomb_l(
char *mbchar,
wchar_t wchar,
_locale_t locale
);
Параметры
mbchar
Адрес многобайтового символа.wchar
Расширенный символ.
Возвращаемое значение
Если wctomb преобразует расширенный символ в многобайтовые, возвращается число байтов (которое никогда не больше, чем MB_CUR_MAX) в расширенном символе. Если wchar расширенный нулевой символ (L'\0), wctomb возвращает 1. Если указатель назначения mbchar является NULL, wctomb возвращает 0. Если преобразование невозможно для текущего языкового стандарта, wctomb возвращает –1, и errno устанавливается в EILSEQ.
Заметки
Функция wctomb преобразует свой аргумент wchar в соответствующие многобайтовые символы и сохраняет результат в mbchar. Функцию можно вызвать из любого места в любой программе. wctomb использует текущий языковой стандарт для операций, зависящих от языкового стандарта; _wctomb_l идентична wctomb за исключением того, что она использует переданный ей языковой стандарт. Для получения дополнительной информации см. Языковой стандарт.
wctomb проверяет свои параметры. Если параметр mbchar имеет значение NULL, вызывается обработчик недопустимого параметра, как описано в разделе Проверка параметров. Если продолжение выполнения разрешено, errno принимает значение EINVAL, и функция возвращает -1.
Требования
Подпрограмма |
Обязательный заголовок |
---|---|
wctomb |
<stdlib.h> |
Дополнительные сведения о совместимости см. в разделе Совместимость во введении.
Пример
Эта программа иллюстрирует поведение функции wctomb.
// crt_wctomb.cpp
// compile with: /W3
#include <stdio.h>
#include <stdlib.h>
int main( void )
{
int i;
wchar_t wc = L'a';
char *pmb = (char *)malloc( MB_CUR_MAX );
printf( "Convert a wide character:\n" );
i = wctomb( pmb, wc ); // C4996
// Note: wctomb is deprecated; consider using wctomb_s
printf( " Characters converted: %u\n", i );
printf( " Multibyte character: %.1s\n\n", pmb );
}
Эквивалент в .NET Framework
Неприменимо. Для вызова стандартной функции C используйте PInvoke. Дополнительные сведения см. в разделе Примеры вызовов неуправляемого кода.