mbrtowc(3) Library Functions Manual mbrtowc(3) NOM mbrtowc - Convertir une sequence multioctet en caractere large BIBLIOTHEQUE Bibliotheque C standard (libc, -lc) SYNOPSIS #include size_t mbrtowc(wchar_t *restrict pwc, const char s[restrict .n], size_t n, mbstate_t *restrict ps); DESCRIPTION The main case for this function is when s is not NULL and pwc is not NULL. In this case, the mbrtowc() function inspects at most n bytes of the multibyte string starting at s, extracts the next complete multibyte character, converts it to a wide character and stores it at *pwc. It updates the shift state *ps. If the converted wide character is not L'\0' (the null wide character), it returns the number of bytes that were consumed from s. If the converted wide character is L'\0', it resets the shift state *ps to the initial state and returns 0. Si les n octets commencant en s ne contiennent pas de caractere large complet, mbrtowc() renvoie (size_t) -2. Cela peut se produire meme si n >= MB_CUR_MAX, lorsque la sequence multioctet contient des sequences de decalage redondantes. Si la sequence multioctet commencant en s contient une sequence invalide avant le prochain caractere complet, mbrtowc() renvoie (size_t) -1 et place dans errno la valeur EILSEQ. Dans ce cas, les effets sur *ps sont indefinis. Une autre situation est possible, si s est non NULL, mais pwc est NULL. Dans ce cas, mbrtowc() se comporte comme precedemment, mais n'enregistre pas le caractere large obtenu. Un troisieme cas se presente si s est NULL. Alors, pwc et n sont ignores. Si l'etat de conversion represente par *ps indique une conversion multioctet incomplete, la fonction mbrtowc() renvoie (size_t) -1, remplie errno avec EILSEQ, et laisse *ps dans un etat indefini. Sinon, la fonction mbrtowc() replace *ps dans l'etat initial et renvoie 0. Dans tous ces cas, si ps est un pointeur NULL, une zone de memoire statique propre a mbrtowc() est utilisee a sa place. Sinon, *ps doit etre un objet mbstate_t valide. Un tel objet mbstate_t note a peut etre initialise en le mettant a zero, par exemple ainsi : memset(&a, 0, sizeof(a)); VALEUR RENVOYEE The mbrtowc() function returns the number of bytes parsed from the multibyte sequence starting at s, if a non-L'\0' wide character was recognized. It returns 0, if a L'\0' wide character was recognized. It returns (size_t) -1 and sets errno to EILSEQ, if an invalid multibyte sequence was encountered. It returns (size_t) -2 if it couldn't parse a complete multibyte character, meaning that n should be increased. ATTRIBUTS Pour une explication des termes utilises dans cette section, consulter attributes(7). +--------------+--------------------------+----------------------------+ |Interface | Attribut | Valeur | +--------------+--------------------------+----------------------------+ |mbrtowc() | Securite des threads | MT-Unsafe race:mbrtowc/!ps | +--------------+--------------------------+----------------------------+ STANDARDS C11, POSIX.1-2008. HISTORIQUE POSIX.1-2001, C99. NOTES Le comportement de mbrtowc() depend de la categorie LC_CTYPE de la localisation en cours. VOIR AUSSI mbsinit(3), mbsrtowcs(3) TRADUCTION La traduction francaise de cette page de manuel a ete creee par Christophe Blaess , Stephan Rafin , Thierry Vignaud , Francois Micaux, Alain Portal , Jean-Philippe Guerard , Jean-Luc Coulon (f5ibh) , Julien Cristau , Thomas Huriaux , Nicolas Francois , Florentin Duneau , Simon Paillard , Denis Barbier , David Prevot , Jean-Baptiste Holcroft et Gregoire Scano Cette traduction est une documentation libre ; veuillez vous reporter a la GNU General Public License version 3 concernant les conditions de copie et de distribution. Il n'y a aucune RESPONSABILITE LEGALE. Si vous decouvrez un bogue dans la traduction de cette page de manuel, veuillez envoyer un message a . Pages du manuel de Linux 6.12 23 juillet 2024 mbrtowc(3)