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é.