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é |
tous | >INT_MAX |
EINVAL |
non modifié |
tous | 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
Commentaires
https://aka.ms/ContentUserFeedback.
Bientôt disponible : Tout au long de 2024, nous allons supprimer progressivement GitHub Issues comme mécanisme de commentaires pour le contenu et le remplacer par un nouveau système de commentaires. Pour plus d’informations, consultezEnvoyer et afficher des commentaires pour