Provided by: manpages-fr-dev_4.13-4_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

       Pour une explication des termes utilisés dans cette section, consulter attributes(7).
       ┌───────────┬──────────────────────┬────────────────────────────┐
       │ InterfaceAttributValeur                     │
       ├───────────┼──────────────────────┼────────────────────────────┤
       │ mbrtowc() │ Sécurité des threads │ MT-Unsafe race:mbrtowc/!ps │
       └───────────┴──────────────────────┴────────────────────────────┘

CONFORMITÉ

       POSIX.1-2001, POSIX.1-2008, C99.

NOTES

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

VOIR AUSSI

       mbsinit(3), mbsrtowcs(3)

COLOPHON

       Cette page fait partie de la publication 5.10 du projet man-pages Linux. Une description du projet et des
       instructions pour signaler des anomalies et la dernière version de cette page  peuvent  être  trouvées  à
       l'adresse https://www.kernel.org/doc/man-pages/.

TRADUCTION

       La   traduction   française   de   cette   page   de   manuel   a   été   créée   par  Christophe  Blaess
       <https://www.blaess.fr/christophe/>,   Stéphan   Rafin   <stephan.rafin@laposte.net>,   Thierry   Vignaud
       <tvignaud@mandriva.com>,  François  Micaux,  Alain Portal <aportal@univ-montp2.fr>, Jean-Philippe Guérard
       <fevrier@tigreraye.org>,   Jean-Luc   Coulon   (f5ibh)   <jean-luc.coulon@wanadoo.fr>,   Julien   Cristau
       <jcristau@debian.org>,      Thomas      Huriaux      <thomas.huriaux@gmail.com>,     Nicolas     François
       <nicolas.francois@centraliens.net>,    Florentin    Duneau    <fduneau@gmail.com>,     Simon     Paillard
       <simon.paillard@resel.enst-bretagne.fr>,     Denis    Barbier    <barbier@debian.org>,    David    Prévot
       <david@tilapin.org>,   Jean-Baptiste   Holcroft    <jean-baptiste@holcroft.fr>    et    Grégoire    Scano
       <gregoire.scano@malloc.fr>

       Cette  traduction  est  une  documentation libre ; veuillez vous reporter à la GNU General Public License
       version 3 concernant les conditions de copie et de distribution. Il n'y a aucune RESPONSABILITÉ LÉGALE.

       Si vous découvrez un bogue dans la traduction de cette page de manuel,  veuillez  envoyer  un  message  à
       debian-l10n-french@lists.debian.org.

GNU                                                6 mars 2019                                        MBRTOWC(3)