mbsrtowcs - Convertir une séquence multioctet en chaîne de
caractères larges
Bibliothèque C standard (
libc,
-lc)
#include <wchar.h>
size_t mbsrtowcs(wchar_t dest[restrict .len], const char **restrict src,
size_t len, mbstate_t *restrict ps);
Si
dest n'est pas un pointeur NULL, la fonction
mbsrtowcs()
convertit la séquence multioctet
*src en une chaîne de
caractères larges débutant en
dest. Au maximum,
len caractères larges sont écrits dans
dest.
L'état de conversion
*ps est mis à jour. La conversion
est en fait réalisée en invoquant de façon
répétée
mbrtowc(dest, *src, n, ps) où
n est un nombre positif, aussi longtemps que cet appel réussit,
en incrémentant chaque fois
dest de un et en augmentant
*src du nombre d'octets lus. La conversion peut s'arrêter pour
trois raisons :
- •
- Une séquence multioctet incorrecte a
été rencontrée. Dans ce cas, *src pointera sur
la séquence incorrecte, et la fonction renvoie
(size_t) -1 en positionnant errno à la valeur
EILSEQ.
- •
-
len caractères larges différents de
L'\0' ont été enregistrés en dest. Dans ce
cas, *src pointe sur la séquence multioctet suivante, et le
nombre de caractères larges écrites dans dest est
renvoyé.
- •
- La séquence multioctet a été
complètement convertie, y compris le caractère nul ('\0')
final, ce qui a pour effet de bord de ramener *ps à
l'état initial. Dans ce cas, *src est mis à NULL, et
le nombre de caractères écrits dans dest, moins le
caractère large nul final, est renvoyé.
Si
dest est NULL, alors
len est ignoré, et la conversion se
déroule comme précédemment, sauf que les
caractères convertis ne sont pas écrits en mémoire, et
qu'aucune limite de destination n'est prise en compte.
Dans tous les cas, si
ps est un pointeur NULL, un état anonyme
statique, réservé à la fonction
mbsnrtowcs() est
utilisé à sa place.
Le programmeur doit s'assurer qu'il y assez de place pour au moins
len
caractères larges dans
dest.
La fonction
mbsrtowcs() renvoie le nombre de caractères larges
placés dans la zone convertie, sans compter le caractère nul
final. Si une séquence multioctet incorrecte est rencontrée, la
fonction renvoie
(size_t) -1, et
errno contient
EILSEQ.
Pour une explication des termes utilisés dans cette section, consulter
attributes(7).
Interface |
Attribut |
Valeur |
mbsrtowcs() |
Sécurité des threads |
MT-Unsafe race:mbsrtowcs/!ps |
POSIX.1-2001, POSIX.1-2008, C99.
Le comportement de
mbsrtowcs() dépend de la catégorie
LC_CTYPE de la localisation en cours.
Passer NULL dans
ps n'est pas sûr dans un contexte multithread.
iconv(3),
mbrtowc(3),
mbsinit(3),
mbsnrtowcs(3),
mbstowcs(3)
La traduction française de cette page de manuel a été
créée par Christophe Blaess
<
https://www.blaess.fr/christophe/>, Stéphan Rafin
<
[email protected]>, Thierry Vignaud
<
[email protected]>, François Micaux, Alain Portal
<
[email protected]>, Jean-Philippe Guérard
<
[email protected]>, Jean-Luc Coulon (f5ibh)
<
[email protected]>, Julien Cristau
<
[email protected]>, Thomas Huriaux <
[email protected]>,
Nicolas François <
[email protected]>, Florentin
Duneau <
[email protected]>, Simon Paillard
<
[email protected]>, Denis Barbier
<
[email protected]>, David Prévot <
[email protected]>,
Jean-Baptiste Holcroft <
[email protected]> et Grégoire
Scano <
[email protected]>
Cette traduction est une documentation libre ; veuillez vous reporter
à la
GNU
General Public License version 3 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 à
[email protected]