mbsnrtowcs(3) Library Functions Manual mbsnrtowcs(3) NOM mbsnrtowcs - Convertir une sequence multioctet en chaine de caracteres larges BIBLIOTHEQUE Bibliotheque C standard (libc, -lc) SYNOPSIS #include size_t mbsnrtowcs(wchar_t dest[restrict .len], const char **restrict src, size_t nms, size_t len, mbstate_t *restrict ps); Exigences de macros de test de fonctionnalites pour la glibc (consulter feature_test_macros(7)) : mbsnrtowcs() : Depuis la glibc 2.10 : _POSIX_C_SOURCE >= 200809L Avant la glibc 2.10 : _GNU_SOURCE DESCRIPTION La fonction mbsnrtowcs() est equivalente a la fonction mbsrtowcs(3), sauf qu'elle ne convertit qu'un nombre limite a au plus nms octets commencant en *src. Si dest n'est pas un pointeur NULL, la fonction mbsnrtowcs() convertit au plus nms octets depuis la sequence multioctet *src en une chaine de caracteres larges situee dans dest. Au maximum len caracteres larges sont ecrits dans dest. L'etat de conversion *ps est mis a jour. La conversion est en fait realisee en invoquant de facon repetee mbrtowc(dest, *src, n, ps), ou n est un nombre positif, aussi longtemps que l'appel reussit, puis en incrementant dest de un et en augmentant *src du nombre d'octets lus. La conversion peut s'arreter pour trois raisons : - Une sequence multioctet incorrecte a ete rencontree. Dans ce cas, *src pointera sur la sequence incorrecte, et la fonction renvoie (size_t) -1 en positionnant errno a la valeur EILSEQ. - L'arret est force a cause de la limite nms, ou si len caracteres larges differents de L'\0' ont ete enregistres en dest. Dans ce cas, *src pointe sur la sequence multioctet suivante, et le nombre de caracteres larges ecrits dans dest est renvoye. - La sequence multioctet a ete completement convertie, y compris le caractere nul ('\0') final (ce qui a pour effet de bord de ramener *ps a l'etat initial). Dans ce cas, *src est mis a NULL, et le nombre de caracteres larges ecrits dans dest, moins le caractere large nul final, est renvoye. Selon POSIX.1, si le tampon d'entree se termine par un caractere incomplet, il n'est pas specifie si la conversion s'arrete a la fin du caractere precedant (s'il existe) ou a la fin du tampon d'entree. L'implementation de la glibc suit le premier comportement. Si dest est NULL, alors len est ignore, et la conversion se deroule comme precedemment, sauf que les caracteres convertis ne sont pas ecrits en memoire, et qu'aucune limite de destination n'est prise en compte. Dans tous les cas, si ps est un pointeur NULL, un etat anonyme statique, reserve a la fonction mbsnrtowcs() est utilise a sa place. Le programmeur doit s'assurer qu'il y assez de place pour au moins len caracteres larges dans dest. VALEUR RENVOYEE La fonction mbsnrtowcs() renvoie le nombre de caracteres larges places dans la zone convertie, sans compter le caractere nul final. Si une sequence multioctet incorrecte est rencontree, la fonction renvoie (size_t) -1, et errno contient EILSEQ. ATTRIBUTS Pour une explication des termes utilises dans cette section, consulter attributes(7). +-------------+--------------------------+-----------------------------+ |Interface | Attribut | Valeur | +-------------+--------------------------+-----------------------------+ |mbsnrtowcs() | Securite des threads | MT-Unsafe | | | | race:mbsnrtowcs/!ps | +-------------+--------------------------+-----------------------------+ STANDARDS POSIX.1-2008. NOTES Le comportement de mbsnrtowcs() depend de la categorie LC_CTYPE de la localisation en cours. Passer NULL dans ps n'est pas sur dans un contexte multithread. VOIR AUSSI iconv(3), mbrtowc(3), 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.06 31 octobre 2023 mbsnrtowcs(3)