dwww Home | Manual pages | Find package

wprintf(3)                 Library Functions Manual                 wprintf(3)

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  vs-
       printf(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, contrai-
              rement à 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 mo-
              dificateur  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 ta-
              bleau sont convertis en caractères larges (un par un par l'appel
              de  la  fonction mbrtowc(3) avec un état de conversion réinitia-
              lisé 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'ar-
              gument  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 com-
       pris 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(),        │ Sécurité des threads │ MT-Safe locale │
       │swprintf(), vwprintf(),       │                      │                │
       │vfwprintf(), vswprintf()      │                      │                │
       └──────────────────────────────┴──────────────────────┴────────────────┘

STANDARDS
       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 pro-
       gramme 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 univer-
       sels 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  Chris-
       tophe  Blaess  <https://www.blaess.fr/christophe/>, Stéphan Rafin <ste-
       phan.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.cou-
       lon@wanadoo.fr>,  Julien  Cristau <jcristau@debian.org>, Thomas Huriaux
       <thomas.huriaux@gmail.com>, Nicolas François  <nicolas.francois@centra-
       liens.net>,  Florentin  Duneau <fduneau@gmail.com>, Simon Paillard <si-
       mon.paillard@resel.enst-bretagne.fr>,   Denis   Barbier    <barbier@de-
       bian.org>,  David  Prévot <david@tilapin.org>, Frédéric Hantrais <fhan-
       trais@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
       ⟨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⟩.

Pages du manuel de Linux 6.03   5 février 2023                      wprintf(3)

Generated by dwww version 1.15 on Sat Jun 29 01:40:27 CEST 2024.