wctomb_s, _wctomb_s_l

Convertit le caractère large en le caractère multioctets correspondant. Il s'agit de versions de wctomb, _wctomb_l avec des améliorations de sécurité, comme décrit dans Fonctionnalités de sécurité dans le 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 un code indiquant 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 large.

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

Valeur de retour

Zéro si l'opération a réussi, code d'erreur en cas de échec.

Conditions d'erreur

mbchar

sizeInBytes

Valeur de retour

pRetValue

NULL

>0

EINVAL

non modifié

any

>INT_MAX

EINVAL

non modifié

any

trop petit

EINVAL

non modifié

Si l'une de ces conditions d'erreur ci-dessus se produit, le gestionnaire de paramètre non valide est appelé, comme décrit dans Validation de paramètre. Si l'exécution est autorisée à se poursuivre, wctomb renvoie EINVAL et attribue à errno la valeur EINVAL.

Notes

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

Si wctomb_s convertit le caractère large en un caractères multioctets, il met le nombre d'octets (qui n'est jamais supérieur à MB_CUR_MAX) du caractère large dans l'entier référencé par pRetValue. Si wchar est le caractère large caractère null (L '\0), wctomb_s remplit pRetValue à 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 actuels, wctomb_s met – 1 dans pRetValue.

wctomb_s utilise les paramètres régionaux actuels pour les informations dépendant des paramètres régionaux ; _wctomb_s_l est identique à la différence qu'il utilise les paramètres régionaux transmis à 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 plus d'informations sur la compatibilité, consultez Compatibilité dans l'introduction.

Exemple

Ce programme illustre le comportement de la fonction 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 Exemples d'appel de plateforme.

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