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