wctomb, _wctomb_l

Convertit un caractère large en caractère multioctet correspondant. Des versions plus sécurisées de ces fonctions sont disponibles ; voir wctomb_s, _wctomb_s_l.

Syntaxe

int wctomb(
   char *mbchar,
   wchar_t wchar
);
int _wctomb_l(
   char *mbchar,
   wchar_t wchar,
   _locale_t locale
);

Paramètres

mbchar
Adresse d’un caractère multioctet.

wchar
Caractère large.

Valeur retournée

Si wctomb convertit le caractère large en caractère multioctet, il retourne le nombre d’octets (qui n’est jamais supérieure à MB_CUR_MAX) dans le caractère large. Si wchar correspond au caractère Null à caractère large (L'\0'), wctomb retourne 1. Si le pointeur mbchar cible est NULL, wctomb retourne 0. Si la conversion n’est pas possible dans les paramètres régionaux actuels, wctomb retourne -1 et errno est définie sur EILSEQ.

Notes

La fonction wctomb convertit son argument wchar en caractère multioctet correspondant et stocke le résultat au niveau de mbchar. Vous pouvez appeler la fonction de n’importe quel endroit dans n’importe quel programme. La fonction wctomb utilise les paramètres régionaux actuels pour tout comportement dépendant des paramètres régionaux ; la fonction _wctomb_l est identique à wctomb sauf qu'elle utilise les paramètres régionaux passés à la place. Pour plus d’informations, consultez Locale.

wctomb valide ses paramètres. Si mbchar c’est NULLle cas, le gestionnaire de paramètres non valide est appelé, comme décrit dans la validation des paramètres. Si l’exécution est autorisée à se poursuivre, errno est défini sur EINVAL et la fonction retourne -1.

Par défaut, l’état global de cette fonction est limité à l’application. Pour modifier ce comportement, consultez État global dans le CRT.

Spécifications

Routine En-tête requis
wctomb <stdlib.h>

Pour plus d’informations sur la compatibilité, consultez Compatibility.

Exemple

Ce programme illustre le comportement de la fonction wctomb.

// crt_wctomb.cpp
// compile with: /W3
#include <stdio.h>
#include <stdlib.h>

int main( void )
{
   int i;
   wchar_t wc = L'a';
   char *pmb = (char *)malloc( MB_CUR_MAX );

   printf( "Convert a wide character:\n" );
   i = wctomb( pmb, wc ); // C4996
   // Note: wctomb is deprecated; consider using wctomb_s
   printf( "   Characters converted: %u\n", i );
   printf( "   Multibyte character: %.1s\n\n", pmb );
}
Convert a wide character:
   Characters converted: 1
   Multibyte character: a

Voir aussi

Conversion de données
Paramètres régionaux
_mbclen, mblen, _mblen_l
mbstowcs, _mbstowcs_l
mbtowc, _mbtowc_l
wcstombs, _wcstombs_l
WideCharToMultiByte