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.