Provided by: manpages-fr-dev_4.15.0-9_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 *restrict format, ...);
       int fwprintf(FILE *restrict stream,
                    const wchar_t *restrict format, ...);
       int swprintf(wchar_t *restrict wcs, size_t maxlen,
                    const wchar_t *restrict format, ...);

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

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

       Pour toutes les fonctions ci-dessus :
           _XOPEN_SOURCE >= 500 || _ISOC99_SOURCE
               || _POSIX_C_SOURCE >= 200112L

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é octet (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 flux. flux ne doit pas être
       orienté octet (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 une chaîne 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 multioctets commençant à l'état initial de décalage . 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 caractère NULL
              final (L'\0') non compris. Si la précision est  donnée,  le  nombre  de  caractères
              larges  écrits ne la dépassera pas. Notez bien que la précision 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 NULL final (L'\0'), à moins que la précision donnée
              soit si petite que le nombre de caractères larges convertis 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 caractère NULL final non compris. Si la
              précision est indiquée, le nombre de caractères écrits  ne  la  dépassera  pas.  Le
              tableau  doit contenir un caractère NULL final à moins que la précision 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
       NULL  final dans le cas des fonctions swprintf() et vswprintf(). Elles renvoient -1 en cas
       d'erreur.

ATTRIBUTS

       Pour une explication des termes utilisés dans cette section, consulter attributes(7).

       ┌─────────────────────────────────────────────────┬──────────────────────┬────────────────┐
       │InterfaceAttributValeur         │
       ├─────────────────────────────────────────────────┼──────────────────────┼────────────────┤
       │wprintf(), fwprintf(), swprintf(), vwprintf(),   │ Sécurité des threads │ MT-Safe locale │
       │vfwprintf(), vswprintf()                         │                      │                │
       └─────────────────────────────────────────────────┴──────────────────────┴────────────────┘

CONFORMITÉ

       POSIX.1-2001, POSIX.1-2008, C99.

NOTES

       Le   comportement   de  wprintf()  et  autres  dépend  de  la  catégorie  LC_CTYPE  de  la
       régionalisation 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 régionalisation 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  régionalisation.  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  ASCII  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 5.13 du projet man-pages Linux. Une description
       du projet et des instructions pour signaler des anomalies et la dernière version de  cette
       page peuvent être trouvées à l'adresse https://www.kernel.org/doc/man-pages/.

TRADUCTION

       La  traduction  française  de  cette  page  de  manuel  a  été créée par Christophe Blaess
       <https://www.blaess.fr/christophe/>, Stéphan  Rafin  <stephan.rafin@laposte.net>,  Thierry
       Vignaud  <tvignaud@mandriva.com>,  François Micaux, Alain Portal <aportal@univ-montp2.fr>,
       Jean-Philippe   Guérard   <fevrier@tigreraye.org>,   Jean-Luc   Coulon   (f5ibh)    <jean-
       luc.coulon@wanadoo.fr>,    Julien    Cristau    <jcristau@debian.org>,    Thomas   Huriaux
       <thomas.huriaux@gmail.com>, Nicolas François <nicolas.francois@centraliens.net>, Florentin
       Duneau  <fduneau@gmail.com>, Simon Paillard <simon.paillard@resel.enst-bretagne.fr>, Denis
       Barbier  <barbier@debian.org>,  David  Prévot  <david@tilapin.org>  et  Frédéric  Hantrais
       <fhantrais@gmail.com>

       Cette  traduction  est  une  documentation libre ; veuillez vous reporter à la GNU General
       Public  License  version 3  ⟨https://www.gnu.org/licenses/gpl-3.0.html⟩   concernant   les
       conditions de copie et de distribution. Il n'y a aucune RESPONSABILITÉ LÉGALE.

       Si vous découvrez un bogue dans la traduction de cette page de manuel, veuillez envoyer un
       message à ⟨debian-l10n-french@lists.debian.org⟩.