Available in

(3) (3)/es (3)/fr (3)/ja (3)/pt

Contents

NOM

mbrtowc − Convertir une séquence multi−octets en caractère large.

SYNOPSIS

#include <wchar.h>

size_t mbrtowc(wchar_t *pwc, const char *s, size_t n, mbstate_t *ps);

DESCRIPTION

L’utilisation principale de cette fonction est avec s et pwc non NULL. Dans ce cas, la fonction mbrtowc() examine au plus n octets de la chaîne multi−octets commençant en s, en extrait le prochain caractère multi−octets complet, et le place en *pwc. Elle met à jour l’état de décalage *ps. Si le caractère large obtenu n’est pas L'\0', elle renvoie le nombre d’octets consommés depuis s. Si le caractère large obtenu est L'\0', elle ré−initialise l’état de décalage *ps et renvoie zéro.

Si les n octets commençant en s ne contiennent pas de caractère large complet, mbrtowc() renvoie (size_t) −2. Cela peut se produire même si n >= MB_CUR_MAX, lorsque la séquence multi−octets contient des séquences de décalage redondantes.

Si la séquence multi−octets commençant en s contient une séquence invalide avant le prochain caractère complet, mbrtowc() renvoie (size_t) −1 et place dans errno la valeur EILSEQ. Dans ce cas, les effets sur *ps sont indéfinis.

Une autre situation est possible, si s est non NULL, mais pwc est NULL. Dans ce cas, mbrtowc() se comporte comme précédemment, mais n’enregistre pas le caractère large obtenu.

Un troisième cas se présente si s est NULL. Alors, pwc et n sont ignorés. Si l’état de conversion représenté par *ps indique une conversion multi−octets incomplète, la fonction mbrtowc() renvoie (size_t) −1, remplie errno avec EILSEQ, et laisse *ps dans un état indéfini. Sinon, la fonction mbrtowc() replace *ps dans l’état initial et renvoie 0.

Dans tous ces cas, si ps est un pointeur NULL, une zone de mémoire statique propre à mbrtowc() est utilisée à sa place. Sinon, *ps doit être un objet mbstate_t valide. Un tel objet mbstate_t noté a peut être initialisé en le mettant à zéro, par exemple ainsi :

memset(&a, 0, sizeof(a));

VALEUR RENVOYÉE

La fonction mbrtowc() renvoie le nombre d’octets balayés depuis la séquence commençant en s, si un caractère large non nul a été reconnu. Elle renvoie zéro si un caractère large nul est rencontré. Elle renvoie (size_t) −1 et remplit errno avec EILSEQ, si une séquence invalide est trouvée. Elle renvoie (size_t) −2 si elle n’a pas trouvé de caractère entier, et si n doit être augmenté.

CONFORMITÉ

C99.

NOTES

Le comportement de mbrtowc() dépend de la catégorie LC_CTYPE de la localisation en cours.

VOIR AUSSI

mbsrtowcs(3)

COLOPHON

Cette page fait partie de la publication 3.23 du projet man−pages Linux. Une description du projet et des instructions pour signaler des anomalies peuvent être trouvées à l’adresse http://www.kernel.org/doc/man−pages/.

TRADUCTION

Cette page de manuel a été traduite et mise à jour par Christophe Blaess <http://www.blaess.fr/christophe/>; entre 1996 et 2003, puis par Alain Portal <aportal AT univ−montp2 DOT fr> jusqu’en 2006, et mise à disposition sur http://manpagesfr.free.fr/.

Les mises à jour et corrections de la version présente dans Debian sont directement gérées par Florentin Duneau <fduneau [AT] gmail.com> et l’équipe francophone de traduction de Debian.

Veuillez signaler toute erreur de traduction en écrivant à <debian−l10n−french [AT] lists.org> ou par un rapport de bogue sur le paquet manpages−fr.

Vous pouvez toujours avoir accès à la version anglaise de ce document en utilisant la commande « man −L C <section> <page_de_man> ».

COMMENTS

blog comments powered by Disqus