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.