Provided by: manpages-fr-dev_3.65d1p1-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 (L'\0')). 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 (L'\0'), à 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.65 du projet man-pages Linux.  Une  description
       du  projet  et  des  instructions  pour  signaler  des  anomalies  peuvent être trouvées à
       l'adresse http://www.kernel.org/doc/man-pages/.

TRADUCTION

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

       Thierry Vignaud (2002), Alain Portal <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> ».