Provided by: manpages-fr-dev_4.21.0-2_all bug

NOM

       mbrtowc - Convertir une séquence multioctet en caractère large

BIBLIOTHÈQUE

       Bibliothèque C standard (libc, -lc)

SYNOPSIS

       #include <wchar.h>

       size_t mbrtowc(wchar_t *restrict pwc, const char s[restrict .n],
                      size_t n, mbstate_t *restrict 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 multioctet 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 définit errno à EILSEQ, si une séquence multioctet non valable est trouvée.
       Elle renvoie (size_t) -2 si elle n'a pas trouvé de caractère multioctet entier,  signifiant  que  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 │
       └───────────────────────────────────────────────────┴──────────────────────┴────────────────────────────┘

STANDARDS

       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)

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  <tvi‐
       gnaud@mandriva.com>,  François  Micaux, Alain Portal <aportal@univ-montp2.fr>, Jean-Philippe Guérard <fe‐
       vrier@tigreraye.org>, Jean-Luc Coulon (f5ibh) <jean-luc.coulon@wanadoo.fr>, Julien Cristau  <jcristau@de‐
       bian.org>,   Thomas   Huriaux   <thomas.huriaux@gmail.com>,  Nicolas  François  <nicolas.francois@centra‐
       liens.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-bap‐
       tiste@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 à  de‐
       bian-l10n-french@lists.debian.org.

Pages du manuel de Linux 6.03                    5 février 2023                                       mbrtowc(3)