wctomb_s, _wctomb_s_l
Convierte un carácter ancho al carácter correspondiente multibyte.Una versión de wctomb, _wctomb_l con mejoras de seguridad como se describe en Características de seguridad en 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
);
Parámetros
[out] pRetValue
El número de bytes, o código que indica el resultado.[out] mbchar
La dirección de un carácter multibyte.[in] sizeInBytes
Tamaño del búfer mbchar.[in] wchar
un carácter ancho.[in] locale
la configuración regional a utilizar.
Valor devuelto
Cero si es correcto, un código de error del error.
condiciones de error
mbchar |
sizeInBytes |
Valor devuelto |
pRetValue |
---|---|---|---|
NULL |
>0 |
EINVAL |
no modificado |
cualquier |
>INT_MAX |
EINVAL |
no modificado |
cualquier |
demasiado pequeño |
EINVAL |
no modificado |
Si es un de los sobre condiciones de error, el controlador no válido de parámetro se invoca, como se describe en Validación de parámetros.Si la ejecución puede continuar, wctomb devuelve EINVAL y establece errno a EINVAL.
Comentarios
La función de wctomb_s convierte su argumento de wchar el carácter correspondiente multibyte y almacena el resultado en mbchar.Puede llamar a la función de cualquier punto de cualquier programa.
Si wctomb_s convierte el carácter ancho a un carácter multibyte, coloca el número de bytes (que nunca es mayor que MB_CUR_MAX) en el carácter ancho en integer indicada por pRetValue.Si wchar es el carácter null de caracteres anchos (L' \ 0 '), wctomb_s rellena pRetValue con 1.Si el puntero mbchar de destino es NULL, wctomb_s coloca 0 en pRetValue.Si la conversión no es posible en la configuración regional actual, wctomb_s coloca – 1 en pRetValue.
wctomb_s utiliza la configuración regional actual para la información configuración; dependientes _wctomb_s_l es idéntico pero utiliza la configuración regional pasado en su lugar.Para obtener más información, vea Configuración regional.
Requisitos
rutina |
Encabezado necesario |
---|---|
wctomb_s |
<stdlib.h> |
_wctomb_s_l |
<stdlib.h> |
Para obtener información adicional de compatibilidad, vea compatibilidad en la Introducción.
Ejemplo
este programa muestra el comportamiento de la función de 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 );
}
Equivalente en .NET Framework
No es aplicable Para llamar a la función estándar de C, utilice PInvoke. Para obtener más información, vea La invocación de plataforma ejemplos.