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.

Vea también

Referencia

Conversión de datos

Configuración regional

_mbclen, mblen, _mblen_l

mbstowcs, _mbstowcs_l

mbtowc, _mbtowc_l

wcstombs, _wcstombs_l

WideCharToMultiByte