Provided by: manpages-fr_1.67.0-1_all bug

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 caractres larges écrit et  non
              le  nombre  d’octets  ou  de positions dcran.  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.