Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Convertit un caractère large en caractère multioctet correspondant. Une version de , _wctomb_lavec des améliorations dewctomb sécurité, comme décrit dans les fonctionnalités de sécurité dans le CRT.
Syntaxe
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
pRetValue
Nombre d’octets ou code indiquant le résultat.
mbchar
Adresse d’un caractère multioctet.
sizeInBytes
Taille de la mémoire tamponmbchar.
wchar
Caractère large à convertir.
locale
Paramètres régionaux à utiliser.
Valeur retournée
Zéro si l'opération a réussi, un code d'erreur en cas d'échec.
Conditions d'erreur
mbchar |
sizeInBytes |
Valeur retournée | pRetValue |
|---|---|---|---|
NULL |
>0 | EINVAL |
non modifié |
| n'importe laquelle | >INT_MAX |
EINVAL |
non modifié |
| n'importe laquelle | trop petite | EINVAL |
non modifié |
Si l’une des conditions d’erreur ci-dessus se produit, 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 à continuer, wctomb retourne EINVAL et définit errno à EINVAL.
La valeur EILSEQ de retour indique que la valeur passée via le paramètre wchar n’est pas un caractère large valide.
Notes
La fonction wctomb_s 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.
Si wctomb_s convertit le caractère large en caractère multioctet, elle place le nombre d’octets (qui n’est jamais supérieure à MB_CUR_MAX) figurant dans le caractère large dans l’entier vers lequel pointe pRetValue. Si wchar correspond au caractère Null à caractère large (L'\0'), wctomb_s complète pRetValue avec la valeur 1. Si le pointeur mbchar cible est NULL, wctomb_s place 0 dans pRetValue. Si la conversion n’est pas possible dans les paramètres régionaux actuels, wctomb_s place -1 dans pRetValue.
wctomb_s utilise les paramètres régionaux actifs pour les informations dépendantes des paramètres régionaux ; la fonction _wctomb_s_l est identique à ceci près qu’elle utilise à la place les paramètres régionaux transmis. Pour plus d’informations, consultez Locale.
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_s |
<stdlib.h> |
_wctomb_s_l |
<stdlib.h> |
Pour plus d’informations sur la compatibilité, consultez Compatibility.
Exemple
Ce programme illustre le comportement de la fonction wctomb_s.
// 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 );
}
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