wcsrtombs - Convertir une chaîne de caractères larges en
séquence multioctet
Bibliothèque C standard (
libc,
-lc)
#include <wchar.h>
size_t wcsrtombs(char dest[restrict .len], const wchar_t **restrict src,
size_t len, mbstate_t *restrict ps);
Si
dest n'est pas NULL, la fonction
wcsrtombs() convertit les
caractères larges depuis la chaîne
*src vers la
séquence multioctet située en
dest. Au plus
len
octets seront écrits dans
dest. L'état de conversion
*ps est mis à jour. La conversion est réalisée en
invoquant
wcrtomb(dest, *src, ps) aussi longtemps que cet
appel réussit, en augmentant à chaque fois
dest du nombre
d'octets écrits et en incrémentant
*src. La conversion
peut s'arrêter pour trois raisons :
- •
- Un caractère large que l'on ne peut pas
représenter par une séquence multioctet (dans la locale
utilisée) a été rencontré. Dans ce cas
*src pointera sur le caractère non valable et la fonction
renverra (size_t) -1 et place EILSEQ dans
errno.
- •
- La limite len est atteinte. Dans ce cas *src
pointera sur le caractère suivant à convertir et la fonction
renvoie le nombre d'octets écrits dans dest.
- •
- La chaîne de caractères larges a
été complètement convertie, y compris le
caractère large nul final (L'\0'), ramenant *ps à
l'état initial. Dans ce cas, *src devient NULL et la
fonction renvoie le nombre d'octets écrits dans dest, sans
compter l'octet nul final ('\0').
Si
dest est NULL, la longueur
len est ignorée et la
conversion se déroule comme précédemment, sauf que les
octets convertis ne sont pas écrits en mémoire et qu'il n'y a
pas de limite de longueur en destination.
Dans tous les cas, si
ps est NULL, un état anonyme statique,
réservé à la fonction
wcsrtombs(), est
utilisé à sa place.
Le programmeur doit s'assurer qu'il y a assez de place pour au moins
len
octets dans
dest.
La fonction
wcsrtombs() renvoie le nombre d'octets constituant la partie
convertie de la séquence multioctet, sans compter l'octet nul final. Si
elle rencontre un caractère large qu'elle ne peut convertir, elle
renvoie
(size_t) -1 et place
EILSEQ dans
errno.
Pour une explication des termes utilisés dans cette section, consulter
attributes(7).
Interface |
Attribut |
Valeur |
wcsrtombs() |
Sécurité des threads |
MT-Unsafe race:wcsrtombs/!ps |
POSIX.1-2001, POSIX.1-2008, C99.
Le comportement de
wcsrtombs() dépend de la catégorie
LC_CTYPE de la locale utilisée.
Passer NULL dans
ps n'est pas sûr dans un contexte multithread.
iconv(3),
mbsinit(3),
wcrtomb(3),
wcsnrtombs(3),
wcstombs(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]