Provided by:
manpages-fr_1.67.0-1_all 
NOM
wprintf, fwprintf, swprintf, vwprintf, vfwprintf, vswprintf - Formatage
de chaînes de caractères larges.
SYNOPSIS
#include <stdio.h>
#include <wchar.h>
int wprintf (const wchar_t* format, ...);
int fwprintf (FILE * flux, const wchar_t* format, ...);
int swprintf (wchar_t* wcs, size_t maxlen,
const wchar_t* format, ...);
#include <stdarg.h>
int vwprintf (const wchar_t* format, va_list args);
int vfwprintf (FILE * flux, const wchar_t* format, va_list args);
int vswprintf (wchar_t* wcs, size_t maxlen,
const wchar_t* format, va_list args);
DESCRIPTION
La famille de fonctions wprintf est l’équivalent pour les caractères
étendus de la famille de fonctions printf. Elle réalise une mise en
forme de ses arguments.
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 un
périphérique spécial orienté caractères (voir la fonction fwide pour
plus d’informations).
Les fonctions fwprintf and vfwprintf réalisent la mise en forme de
chaînes de caractères en vue d’une écriture dans le fichier flux. flux
ne doit pas être un périphérique spécial orienté caractères (voir la
fonction fwide pour plus d’informations).
Les fonctions swprintf and vswprintf réalisent la mise en forme d’une
chaîne de caractères longs 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, vprintf, fprintf,vfprintf, sprintf et vsprintf, hormis les
différences suivantes :
· La chaîne format est composée de caractères larges.
· La sortie est faite de caractères larges, pas d’octets.
· swprintf et vswprintf prennent un argument maxlen, au contraire
de sprintf et vsprintf. (snprintf et vsnprintf 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
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 est présent, l’argument modifier is
present: The ‘‘const char *’’ est interprété comme un pointeur
sur un tableau de caractères (une chaîne) contenant une séquence
de caractères larges commençant à l’état initial. Les caractères
du tableau sont convertis en caractères larges (un par un par
l’appel de la fonction mbrtowc 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 dernier caractère (non
compris le caractère nul finl). Si la taille est donnée, le
nombre de caractères écrits ne la dépassera pas. Notez bien que
la taille détermine le nombre de caractères larges écrit et non
le nombre d’octets ou de positions d’écran. Le tableau doit
contenir un caractère nul final, à moins que la taille donnée
soit si petite que le nombre de caractères larges est atteint
avant la fin du tableau. -- Si un modificateur l est présenti :
L’argument ‘‘const wchar_t *’’ est interprété comme un pointeur
sur un tableau de caractères (une chaîne). Les caractères
larges du tableau sont écrits jusqu’au dernier (non compris le
caractère nul final). Si la taille est indiquée, le nombre de
caractères écrits ne la dépassera pas. Le tableau doit contenir
un caractère nul final à moins que la taille 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 nul final dans le cas des fonctions swprintf et
vswprintf. Elles renvoient -1 en cas d’erreur.
CONFORMITÉ
ISO/ANSI C, UNIX98
VOIR AUSSI
printf(3), fprintf(3), snprintf(3), fputwc(3), fwide(3), wscanf(3)
NOTES
Le comportement de wprintf et compagnie dépend de la catégorie LC_CTYPE
de la locale courante.
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 localisation courante lors 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 localisation. (La LibC de GNU représente les
caractères larges à l’aide de leurs codes Unicode (ISO-10646), mais les
autres architectures ne font pas de mêmes. De plus, l’utilisation des
noms de caractères universels de la norme ISO C99 (de la forme \unnnn)
ne résoud pas ce problème.). Aussi, la chaîne format ne devrait être
constituée que de caractères larges dans les programmes
internationalisés, ou alors elle doit être construite à l’exécution de
manière internationalisée (en utilisant gettext ou iconv, suivi de
mbstowcs).
TRADUCTION
Thierry Vignaud <tvignaud@mandrakesoft.com>, 1999
Christophe Blaess, 2003.