Provided by: manpages-fr-dev_3.57d1p1-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 ||
           _ISOC95_SOURCE /* Depuis glibc 2.12 */ ||
           _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.57 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> ».