Provided by: manpages-fr-dev_4.27.0-1_all 

NOM
wprintf, fwprintf, swprintf, vwprintf, vfwprintf, vswprintf - Formater des chaînes de caractères larges
BIBLIOTHÈQUE
Bibliothèque C standard (libc, -lc)
SYNOPSIS
#include <stdio.h>
#include <wchar.h>
int wprintf(const wchar_t *restrict format, ...);
int fwprintf(FILE *restrict stream,
const wchar_t *restrict format, ...);
int swprintf(wchar_t wcs[restrict .maxlen], size_t maxlen,
const wchar_t *restrict format, ...);
int vwprintf(const wchar_t *restrict format, va_list args);
int vfwprintf(FILE *restrict stream,
const wchar_t *restrict format, va_list args);
int vswprintf(wchar_t wcs[restrict .maxlen], size_t maxlen,
const wchar_t *restrict format, va_list args);
Exigences de macros de test de fonctionnalités pour la glibc (consulter feature_test_macros(7)) :
Pour toutes les fonctions ci-dessus :
" _XOPEN_SOURCE >= 500 || _ISOC99_SOURCE0
|| _POSIX_C_SOURCE >= 200112L
DESCRIPTION
La famille de fonctions wprintf() est l'équivalent pour les caractères larges de la famille de fonctions
printf(3). Elle réalise une mise en forme des caractères larges.
Les fonctions wprintf() et vwprintf() réalisent le traitement et la sortie de chaînes de caractères
larges sur stdout. stdout ne doit pas être orienté octet (consultez fwide(3) pour plus d'informations).
Les fonctions fwprintf() et vfwprintf() réalisent la mise en forme de chaînes de caractères larges en vue
d'une écriture dans le fichier flux. flux ne doit pas être orienté octet (consultez fwide(3) pour plus
d'informations).
Les fonctions swprintf() et vswprintf() réalisent la mise en forme d'une chaîne de caractères larges
avant de l'écrire dans un tableau de caractères larges. Le programmeur doit s'assurer qu'il y ait assez
de place pour au moins maxlen caractères larges dans wcs.
Ces fonctions se comportent de la même manière que les fonctions printf(3), vprintf(3), fprintf(3),
vfprintf(3), sprintf(3) et vsprintf(3), hormis les différences suivantes :
• La chaîne format est une chaîne de caractères larges.
• La sortie est faite de caractères larges, pas d'octets.
• swprintf() et vswprintf() prennent un argument maxlen, contrairement à sprintf(3) et vsprintf(3)
(snprintf(3) et vsnprintf(3) prennent un argument maxlen, mais ces fonctions ne renvoient pas -1
en cas de débordement mémoire sous Linux).
Le traitement des caractères de conversion c et s est différent :
c Si aucun modificateur l n'est présent, l'argument int est converti en un caractère large par un
appel à la fonction btowc(3) et le caractère large en résultant est écrit. Si un modificateur l
est présent, l'argument wint_t (caractère large) est écrit.
s Si aucun modificateur l n'est présent, l'argument const char * est interprété comme un pointeur
sur un tableau de caractères (une chaîne) contenant une séquence de caractères multioctets
commençant à l'état initial de décalage . Les caractères du tableau sont convertis en caractères
larges (un par un par l'appel de la fonction mbrtowc(3) avec un état de conversion réinitialisé
avant le premier octet). La chaîne de caractères larges en résultant est écrite jusqu'au caractère
NULL final (L'\0') non compris. Si la précision est donnée, le nombre de caractères larges écrits
ne la dépassera pas. Notez bien que la précision détermine le nombre de caractères larges écrits
et non le nombre d'octets ou de positions d'écran. Le tableau doit contenir un octet NULL final
('\0'), à moins que la précision donnée soit si petite que le nombre de caractères larges
convertis est atteint avant la fin du tableau. Si un modificateur l est présent, l'argument
const wchar_t * est interprété comme un pointeur sur un tableau de caractères larges. Les
caractères larges du tableau sont écrits jusqu'au caractère NULL final non compris. Si la
précision est indiquée, le nombre de caractères écrits ne la dépassera pas. Le tableau doit
contenir un caractère NULL final à moins que la précision donnée soit inférieure ou égale au
nombre de caractères larges du tableau.
VALEUR RENVOYÉE
Ces fonctions renvoient le nombre de caractères larges écrits, non compris le caractère NULL final dans
le cas des fonctions swprintf() et vswprintf(). Elles renvoient -1 en cas d'erreur.
ATTRIBUTS
Pour une explication des termes utilisés dans cette section, consulter attributes(7).
┌───────────────────────────────────────────────────────────────┬──────────────────────┬────────────────┐
│ Interface │ Attribut │ Valeur │
├───────────────────────────────────────────────────────────────┼──────────────────────┼────────────────┤
│ wprintf(), fwprintf(), swprintf(), vwprintf(), vfwprintf(), │ Sécurité des threads │ MT-Safe locale │
│ vswprintf() │ │ │
└───────────────────────────────────────────────────────────────┴──────────────────────┴────────────────┘
STANDARDS
C11, POSIX.1-2008.
HISTORIQUE
POSIX.1-2001, C99.
NOTES
Le comportement de wprintf() et autres dépend de la catégorie LC_CTYPE de la régionalisation utilisée.
Si la chaîne format contient des caractères larges non ASCII, le programme ne fonctionnera correctement
que si la catégorie LC_CTYPE de la régionalisation de l'exécution est la même que lors de la compilation.
En effet, la représentation de wchar_t dépend de l'architecture et de la régionalisation. La glibc
représente les caractères larges à l'aide de leurs codes Unicode (ISO/IEC 10646), mais les autres
architectures ne font pas de même. De plus, l'utilisation des noms de caractères universels de C99 (de la
forme \unnnn) ne résout pas ce problème. Aussi, la chaîne format ne devrait être constituée que de
caractères larges ASCII dans les programmes internationalisés, ou alors elle doit être construite à
l'exécution de manière internationalisée (en utilisant par exemple gettext(3) ou iconv(3), suivi de
mbstowcs(3)).
VOIR AUSSI
fprintf(3), fputwc(3), fwide(3), printf(3), snprintf(3)
TRADUCTION
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>, Frédéric Hantrais <fhantrais@gmail.com> 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.
Pages du manuel de Linux 6.9.1 15 juin 2024 wprintf(3)