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