wctomb_s
, _wctomb_s_l
Convertit un caractère large en caractère multioctet correspondant. Une version de , _wctomb_l
avec 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