Provided by: manpages-fr-dev_3.32d0.2p4-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 *stream, const wchar_t *format, ...);
       int swprintf(wchar_t *wcs, size_t maxlen,
                    const wchar_t *format, ...);

       int vwprintf(const wchar_t *format, va_list args);
       int vfwprintf(FILE *stream, const wchar_t *format, va_list args);
       int vswprintf(wchar_t *wcs, size_t maxlen,
                     const wchar_t *format, va_list args);

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

       Pour toutes les fonctions ci-dessus :
           _XOPEN_SOURCE >= 500 || _ISOC99_SOURCE || _POSIX_C_SOURCE >= 200112L
           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 (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 stream. stream ne doit pas être
       orienté caractères (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 composée 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 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
              caractères larges écrits et non le nombre d'octets  ou  de  positions  d'écran.  Le
              tableau  doit  contenir  un  octet  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. La glibc 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).

COLOPHON

       Cette page fait partie de la publication 3.32 du projet man-pages Linux.  Une  description
       du  projet  et  des  instructions  pour  signaler  des  anomalies  peuvent être trouvées à
       l'adresse <URL:http://www.kernel.org/doc/man-pages/>.

TRADUCTION

       Depuis   2010,   cette   traduction   est   maintenue   à   l'aide   de    l'outil    po4a
       <URL:http://po4a.alioth.debian.org/>  par  l'équipe  de  traduction francophone au sein du
       projet perkamon <URL:http://perkamon.alioth.debian.org/>.

       Thierry Vignaud  (2002),  Alain  Portal  <URL:http://manpagesfr.free.fr/> (2006).  Nicolas
       François et l'équipe francophone de traduction de Debian (2006-2009).

       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> ».