Loading

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);

       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@gmail.com> et l’équipe
       francophone de traduction de Debian.

       Veuillez  signaler  toute  erreur   de   traduction   en   écrivant   à
       <debian-l10n-french@lists.debian.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> ».