Provided by: manpages-fr-dev_4.15.0-9_all bug

NOM

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

SYNOPSIS

       #include <wchar.h>

       size_t mbrtowc(wchar_t *restrict pwc, const char *restrict s, 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 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.13 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  ⟨https://www.gnu.org/licenses/gpl-3.0.html⟩  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⟩.