Provided by: manpages-fr-dev_3.57d1p1-1_all bug

NOM

       mbrtowc - Convertir une séquence multioctet 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 multioctet commençant  en  s,  en  extrait  le  prochain  caractère
       multioctet  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' (le caractère large nul), 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 multioctet  contient  des
       séquences de décalage redondantes.

       Si  la  séquence  multioctet  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  multioctet  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é.

ATTRIBUTS

   Multithreading (voir pthreads(7))
       La fonction mbrtowc() est sûre dans un contexte multithread avec exceptions. Elle n’est pas sûre dans  un
       contexte multithread si appelées avec un paramètre ps NULL.

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

       Depuis 2010, cette traduction est maintenue à l'aide de l'outil po4a <http://po4a.alioth.debian.org/> par
       l'équipe de traduction francophone au sein du projet perkamon <http://perkamon.alioth.debian.org/>.

       Christophe      Blaess      <http://www.blaess.fr/christophe/>      (1996-2003),       Alain       Portal
       <http://manpagesfr.free.fr/>  (2003-2006).  Florentin  Duneau  et  l'équipe  francophone de traduction de
       Debian (2006-2009).

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