wcsnrtombs - Convertir une chaîne de caractères larges en
séquence multioctet
Bibliothèque C standard (
libc,
-lc)
#include <wchar.h>
size_t wcsnrtombs(char dest[restrict .len], const wchar_t **restrict src,
size_t nwc, size_t len, mbstate_t *restrict ps);
wcsnrtombs() :
Depuis la glibc 2.10 :
_POSIX_C_SOURCE >= 200809L
Avant la glibc 2.10 :
_GNU_SOURCE
La fonction
wcsnrtombs() est l'équivalent de
wcsrtombs(3),
sauf que le nombre de caractères larges à convertir est
limité à
nwc, en commençant à
*src.
Si
dest n'est pas NULL, la fonction
wcsnrtombs() convertit au
maximum
nwc 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 en fait
réalisée en invoquant
wcrtomb(dest, *src, ps) à
répétition, aussi longtemps que cet appel réussit, en
augmentant à chaque fois
dest du nombre d'octets écrits
et en incrémentant
*src de
1. La conversion peut se
terminer 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.
- •
-
nwc caractères larges ont été
convertis sans rencontrer de caractère large nul (L'\0'), ou 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 (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
wcsnrtombs() 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
wcsnrtombs() 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 |
wcsnrtombs() |
Sécurité des threads |
MT-Unsafe race:wcsnrtombs/!ps |
POSIX.1-2008.
Le comportement de
wcsnrtombs() 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),
wcsrtombs(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]