wctomb_s, _wctomb_s_l

 

Para obtener la documentación más reciente de Visual Studio 2017 RC, consulte Documentación de Visual Studio 2017 RC.

Convierte un carácter ancho en el carácter multibyte correspondiente. Una versión de wctomb, _wctomb_l con mejoras de seguridad, como se describe en características de seguridad de 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 un 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
Configuración regional que se va a usar.

Devuelve cero si se ejecuta correctamente; devuelve un código de error si se produce un error.

Condiciones de error

mbcharsizeInBytesValor devueltopRetValue
NULL>0EINVALno modificado
cualquiera>INT_MAXEINVALno modificado
anydemasiado pequeñoEINVALno modificado

Si ocurre alguna de las condiciones de error anterior, se invoca el controlador de parámetros no válidos, como se describe en validación del parámetro. Si la ejecución puede continuar, wctomb devuelve EINVAL y establece errno en EINVAL.

El wctomb_s función convierte su wchar argumento para el carácter multibyte correspondiente y almacena el resultado en mbchar. Puede llamar a la función desde cualquier lugar en cualquier programa.

Si wctomb_s convierte los caracteres anchos 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 el entero que se señala pRetValue. Si wchar es el carácter null de caracteres anchos (L '\0'), wctomb_s rellena pRetValue con 1. Si el puntero de destino mbchar es NULL, wctomb_s pone 0 en pRetValue. Si la conversión no es posible en la configuración regional actual, wctomb_s pone -1 en pRetValue.

wctomb_sutiliza la configuración regional actual para obtener información de configuración regional dependiente; _wctomb_s_l es idéntico, salvo que usa la configuración regional que se pasa en su lugar. Para obtener más información, vea Locale.

RutinaEncabezado necesario
wctomb_s<stdlib.h>
_wctomb_s_l<stdlib.h>

Para obtener información adicional de compatibilidad, vea Compatibilidad en la Introducción.

Este programa muestra el comportamiento de la wctomb (función).

// 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 );  
}  

Convert a wide character:  
   Characters converted: 1  
   Multibyte character: a  

No es aplicable. Para llamar a la función estándar de C, use PInvoke. Para obtener más información, vea Ejemplos de invocación de plataforma.

Conversión de datos
Configuración regional
_mbclen, mblen, _mblen_l
mbstowcs, _mbstowcs_l
mbtowc, _mbtowc_l
wcstombs, _wcstombs_l
WideCharToMultiByte

Mostrar: