WCRTOMB(3) Library Functions Manual WCRTOMB(3)

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(buf, L'\0', ps)

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 <stephan.rafin@laposte.net>, Thierry Vignaud <tvignaud@mandriva.com>, François Micaux, Alain Portal <aportal@univ-montp2.fr>, Jean-Philippe Guérard <fevrier@tigreraye.org>, Jean-Luc Coulon (f5ibh) <jean-luc.coulon@wanadoo.fr>, Julien Cristau <jcristau@debian.org>, Thomas Huriaux <thomas.huriaux@gmail.com>, Nicolas François <nicolas.francois@centraliens.net>, Florentin Duneau <fduneau@gmail.com>, Simon Paillard <simon.paillard@resel.enst-bretagne.fr>, Denis Barbier <barbier@debian.org>, David Prévot <david@tilapin.org>, Jean-Baptiste Holcroft <jean-baptiste@holcroft.fr> et Grégoire Scano <gregoire.scano@malloc.fr>

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 à debian-l10n-french@lists.debian.org.

9 octobre 2022 Pages du manuel de Linux 6.01