wctomb_s, _wctomb_s_l
Преобразует символ многобайтовому расширенный к соответствующему символу.Версия wctomb, _wctomb_l со службами расширений безопасности, как описано в разделе Средства безопасности в CRT.
errno_t wctomb_s(
int *pRetValue,
char *mbchar,
size_t sizeInBytes,
wchar_t wchar
);
errno_t _wctomb_s_l(
int *pRetValue,
char *mbchar,
size_t sizeInBytes,
wchar_t wchar,
_locale_t locale
);
Параметры
[исходящий] pRetValue
Число байтов или код, указывающий результат.[исходящий] mbchar
Адрес многобайтового символов.[входящий] sizeInBytes
Размер буфера mbchar.[входящий] wchar
Расширенный символ.[входящий] locale
Языковой стандарт, который необходимо использовать.
Возвращаемое значение
Нуль, если успешно, код ошибки при сбое.
Условия возникновения ошибок
mbchar |
sizeInBytes |
Возвращаемое значение |
pRetValue |
---|---|---|---|
NULL |
>0 |
EINVAL |
не было |
any |
>INT_MAX |
EINVAL |
не было |
any |
слишком мало |
EINVAL |
не было |
Если либо над ошибками, недопустимый параметр вызван обработчик, как описано в разделе Проверка параметров.Если выполнение может продолжить, wctomb возвращает EINVAL и наборы errno В EINVAL.
Заметки
wctomb_s преобразовывает его функция wchar аргумент к соответствующему символу и сохраняет результат в многобайтовому mbchar.Можно вызвать функцию из любой точки в любой программе.
If wctomb_s расширенный преобразования символов в многобайтовому символ, ему помещает число байтов, которое никогда не больше MB_CUR_MAXв расширенном символе в целое число указывать на by pRetValue.If wchar нуль-символ расширенных символов (L \ 0 ') wctomb_s заполняет pRetValue с 1.Если указатель целевого объекта mbchar значение null, wctomb_s помещает 0 pRetValue.Если преобразование нельзя выполнить в текущем языковом стандарте, wctomb_s помещает - 1 pRetValue.
wctomb_s использует текущий языковой стандарт для данных, зависимых от языковых стандартов. _wctomb_s_l идентичны, за исключением того, что он использует языковой стандарт переданный.Дополнительные сведения см. в разделе Языковой стандарт.
Требования
Процедура |
Обязательный заголовок |
---|---|
wctomb_s |
<stdlib.h> |
_wctomb_s_l |
<stdlib.h> |
Дополнительные сведения о совместимости см. Совместимость во введении.
Пример
Эта программа демонстрирует расширение функциональности wctomb функция.
// crt_wctomb_s.cpp
#include <stdio.h>
#include <stdlib.h>
int main( void )
{
int i;
wchar_t wc = L'a';
char *pmb = (char *)malloc( MB_CUR_MAX );
printf_s( "Convert a wide character:\n" );
wctomb_s( &i, pmb, MB_CUR_MAX, wc );
printf_s( " Characters converted: %u\n", i );
printf_s( " Multibyte character: %.1s\n\n", pmb );
}
Эквивалент в .NET Framework
Неприменимо. Для c# используйте стандартная функция PInvoke. Дополнительные сведения см. в разделе Примеры вызовов неуправляемого кода.