Provided by: manpages-fr-dev_4.18.1-1_all
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). ┌─────────────────────────────────────┬──────────────────────┬────────────────────────────┐ │Interface │ Attribut │ Valeur │ ├─────────────────────────────────────┼──────────────────────┼────────────────────────────┤ │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⟩.