wctomb_s, _wctomb_s_l

Convertit un caractère élargi au caractère multioctets correspondant.Une version de wctomb, _wctomb_l avec des améliorations de sécurité comme décrit dans Fonctionnalités de sécurité du 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
);

Paramètres

  • [out] pRetValue
    Le nombre d'octets, ou le code qui indique le résultat.

  • [out] mbchar
    L'adresse d'un caractère multioctets.

  • [in] sizeInBytes
    taille de la mémoire tampon mbchar.

  • [in] wchar
    Un caractère élargi.

  • [in] locale
    Les paramètres régionaux à utiliser.

Valeur de retour

Zéro en cas de réussite, le code d'erreur en cas de échec.

conditions d'erreur

mbchar

sizeInBytes

Valeur de retour

pRetValue

NULL

>0

EINVAL

non modifié

quels

>INT_MAX

EINVAL

non modifié

quels

trop petit

EINVAL

non modifié

Si l'un des au-dessus de les conditions d'erreur se produit, le gestionnaire de paramètre non valide est appelé, comme décrit dans Validation des paramètres.Si est autorisé à l'exécution de se poursuivre, wctomb retourne EINVAL et définit errno à EINVAL.

Notes

La fonction d' wctomb_s convertit son argument d' wchar au caractère multioctets correspondant et stocke le résultat à l'adresse mbchar.Vous pouvez appeler la fonction de tout point dans n'importe quel programme.

Si wctomb_s convertit le caractère élargi à un caractère multioctets, il met le nombre d'octets (qui n'est jamais supérieur MB_CUR_MAX) dans le caractère élargi dans l'entier désigné par pRetValue.Si wchar est le caractère NULL à caractères larges (L \ 0 '), wctomb_s remplit pRetValue par 1.si le pointeur cible mbchar est NULL, wctomb_s met 0 dans pRetValue.Si la conversion n'est pas possible dans les paramètres régionaux, wctomb_s met à 1 dans pRetValue.

wctomb_s utilise les paramètres régionaux définis pour les informations qui dépendent des paramètres régionaux ; _wctomb_s_l est identique mais il utilise les paramètres régionaux passés à la place.Pour plus d'informations, consultez Paramètres régionaux.

Configuration requise

routine

en-tête requis

wctomb_s

<stdlib.h>

_wctomb_s_l

<stdlib.h>

Pour des informations de compatibilité supplémentaires, consultez compatibilité dans l'introduction.

Exemple

ce programme illustre le comportement de la fonction d' 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 );
}
  

Équivalent .NET Framework

Non applicable. Pour appeler la fonction C standard, utilisez PInvoke. Pour plus d'informations, consultez l' exemples d'appel de code non managé.

Voir aussi

Référence

Conversion de données

Paramètres régionaux

_mbclen, mblen, _mblen_l

mbstowcs, _mbstowcs_l

mbtowc, _mbtowc_l

wcstombs, _wcstombs_l

WideCharToMultiByte