Compartir a través de


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 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 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.

Valor devuelto

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

Condiciones de error

mbchar

sizeInBytes

Valor devuelto

pRetValue

NULL

>0

EINVAL

no modificado

any

>INT_MAX

EINVAL

no modificado

any

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 en 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 regional-dependiente; _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, use PInvoke. Para obtener más información, vea Ejemplos de invocación de plataforma.

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