wcrtomb - Convertir un caractère large en séquence multioctet
Bibliothèque C standard (
libc,
-lc)
#include <wchar.h>
size_t wcrtomb(char *restrict s, wchar_t wc, mbstate_t *restrict ps);
L'utilisation principale de cette fonction est le cas où
s est non
NULL, et
wc n'est pas un caractère large nul (L'\0'). Alors, la
fonction
wcrtomb() convertit le caractère large
wc
à sa représentation multioctet et l'enregistre au début
de la chaîne pointée par
s. Elle met à jour
l'état de conversion
*ps et renvoie la longueur de la
représentation multioctet, c'est-à-dire le nombre d'octets
écrits en
s.
Une autre possibilité peut se présenter quand
s est non
NULL, mais
wc est un caractère large nul (L'\0'). Dans cette
situation, la fonction
wcrtomb() enregistre dans la chaîne de
caractères pointée par
s la séquence de
décalages nécessaire pour ramener
*ps à son
état initial, suivie d'un octet '\0'. Elle met à jour
l'état
*ps (le ramène donc à l'état
initial), et renvoie la longueur de la séquence en ajoutant un pour
compter le caractère nul final, c'est-à-dire le nombre d'octets
écrits dans
s.
Un troisième cas se présente quand
s est NULL. Alors,
wc est ignoré, et la fonction renvoie alors le résultat
de
wcrtomb( tampon, L'\0', ps)
où
tampon est un tampon interne anonyme.
Dans tous les cas ci-dessus, si
ps est NULL, un état statique
interne qui n'est connu que de la fonction
wcrtomb() est utilisé
à la place.
La fonction
wcrtomb() renvoie le nombre d'octets qui ont
été − ou qui auraient
été − écrits dans le tableau d'octets
s. Si
wc ne peut pas être représenté comme
une séquence multioctet (dans la locale en cours), 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 |
wcrtomb() |
Sécurité des threads |
MT-Unsafe race:wcrtomb/!ps |
POSIX.1-2001, POSIX.1-2008, C99.
Le comportement de
wcrtomb() 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.
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]