Provided by: manpages-fr-dev_2.64.1-1_all bug

NOM

       wprintf,  fwprintf, swprintf, vwprintf, vfwprintf, vswprintf - Formater
       des 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 lngmax,
        const wchar_t *format, ...);

       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 lngmax,
        const wchar_t *format, va_list args);

   Exigences pour les macros de test de fonctionnalité de la glibc  (consultez
   feature_test_macros(7)) :

       Toutes les fonctions décrites dans cette page : _XOPEN_SOURCE >= 500 ||
       _ISOC99_SOURCE ; ou cc -std=c99

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é  caractères  (voir  la  fonction   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é  caractères (voir la fonction
       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 lngmax 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 composée de caractères larges.

       ·      La sortie est faite de caractères larges, pas d’octets.

       ·      swprintf()   et   vswprintf()   prennent   un  argument  lngmax,
              contrairement  à  sprintf(3)  et  vsprintf(3)  (snprintf(3)   et
              vsnprintf(3)  prennent un argument lngmax, 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   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(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 dernier caractère (non compris le
              caractère nul final). Si la taille  est  donnée,  le  nombre  de
              caractères  larges écrits ne la dépassera pas. Notez bien que la
              taille détermine le nombre de caractres larges écrits 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é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 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É

       C99.

NOTES

       Le  comportement  de  wprintf()  et  compagnie  dépend  de la catégorie
       LC_CTYPE de la locale 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 localisation 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.  GNU  libc   représente   les
       caractères larges à l’aide de leurs codes Unicode (ISO-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 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

       Cette  page  de  manuel a été traduite par Thierry Vignaud <tvignaud AT
       mandriva DOT com> en 2002, puis a été mise  à  jour  par  Alain  Portal
       <aportal  AT  univ-montp2  DOT fr> jusqu’en 2006, et mise à disposition
       sur http://manpagesfr.free.fr/.

       Les mises à jour et corrections de la version présente dans Debian sont
       directement         gérées         par         Nicolas         François
       <nicolas.francois@centraliens.net>   et   l’équipe    francophone    de
       traduction de Debian.

       Veuillez   signaler   toute   erreur   de   traduction  en  écrivant  à
       <debian-l10n-french@lists.debian.org> ou par un rapport de bogue sur le
       paquet manpages-fr.

       Vous  pouvez  toujours avoir accès à la version anglaise de ce document
       en utilisant la commande « man -L C <section> <page_de_man> ».