Provided by: manpages-fr-dev_4.26.0-1_all bug

NOM

       wprintf, fwprintf, swprintf, vwprintf, vfwprintf, vswprintf - Formater des chaînes de caractères larges

BIBLIOTHÈQUE

       Bibliothèque C standard (libc, -lc)

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 wcs[restrict .maxlen], 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 wcs[restrict .maxlen], 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_SOURCE0
               || _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
              ('\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(), vfwprintf(),   │ Sécurité des threads │ MT-Safe locale │
       │ vswprintf()                                                   │                      │                │
       └───────────────────────────────────────────────────────────────┴──────────────────────┴────────────────┘

STANDARDS

       C11, POSIX.1-2008.

HISTORIQUE

       POSIX.1-2001, 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/IEC 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)

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>, Frédéric Hantrais <fhantrais@gmail.com> et Grégoire Scano <gregoire.scano@malloc.fr>

       Cette traduction est une documentation libre ; veuillez vous  reporter  à  la  GNU General Public License
       version 3 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.

Pages du manuel de Linux 6.9.1                    15 juin 2024                                        wprintf(3)