Condividi tramite


wctomb_s, _wctomb_s_l

Converte un carattere di tipo " wide " al carattere multibyte corrispondente.una versione di wctomb, _wctomb_l con i miglioramenti della sicurezza come descritto in Funzionalità di sicurezza in 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
);

Parametri

  • [out] pRetValue
    Il numero di byte, o un codice che indica il risultato.

  • [out] mbchar
    l'indirizzo di un carattere multibyte.

  • [in] sizeInBytes
    Dimensione del buffer mbchar.

  • [in] wchar
    Un carattere di tipo " wide ".

  • [in] locale
    le impostazioni locali da utilizzare.

Valore restituito

Zero se l'operazione viene completata correttamente, un codice di errore in caso di errore.

condizioni di errore

mbchar

sizeInBytes

Valore restituito

pRetValue

NULL

>0

EINVAL

non modificato

qualsiasi

>INT_MAX

EINVAL

non modificato

qualsiasi

troppo piccolo

EINVAL

non modificato

Se una qualsiasi delle condizioni di errore sopra caso, il gestore non valido di parametro viene richiamato, come descritto in Convalida dei parametri.Se l'esecuzione è consentita per continuare, wctomb restituisce EINVAL e set errno in EINVAL.

Note

wctomb_s la funzione converte il relativo wchar argomento di caratteri multibyte e dei file corrispondenti il risultato a mbchar.È possibile chiamare la funzione da qualsiasi punto in qualsiasi programma.

se wctomb_s converte il carattere di tipo " wide " a un carattere multibyte, inserire il numero di byte (che non è mai maggiore di MB_CUR_MAX) nel carattere di tipo integer indicato da pRetValue.se wchar è il carattere null a caratteri estesi (" \ 0 "), wctomb_s riempie pRetValue con 1.se il puntatore di destinazione mbchar è NULL, wctomb_s inserisce 0 in pRetValue.Se la conversione non è possibile nelle impostazioni locali correnti, wctomb_s inserisce - 1 in pRetValue.

wctomb_s utilizza le impostazioni locali correnti per informazioni sulle impostazioni locali; _wctomb_s_l è identico con la differenza che utilizzano le impostazioni locali passate in alternativa.Per ulteriori informazioni, vedere Impostazioni locali.

Requisiti

routine

Intestazione di associazione

wctomb_s

<definito>

_wctomb_s_l

<definito>

per informazioni di compatibilità aggiuntive, vedere compatibilità nell'introduzione.

Esempio

Questo programma viene illustrato il comportamento di wctomb funzione.

// 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 .NET Framework

Non applicabile. Per chiamare la funzione c standard, utilizzare PInvoke. Per ulteriori informazioni, vedere Esempi di pinvoke.

Vedere anche

Riferimenti

Conversione di dati

Impostazioni locali

_mbclen, mblen, _mblen_l

mbstowcs, _mbstowcs_l

mbtowc, _mbtowc_l

wcstombs, _wcstombs_l

WideCharToMultiByte