Available in

(3) (3)/de (3)/es (3)/fr (3)/ja (3posix)

TOC

WPRINTF(3)                Manuel du programmeur Linux               WPRINTF(3)



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 *flux, const wchar_t *format, ...);
       int swprintf(wchar_t *wcs, size_t lngmax,
        const wchar_t *format, ...);

       int vwprintf(const wchar_t *format, va_list args);
       int vfwprintf(FILE *flux, const wchar_t *format, va_list args);
       int vswprintf(wchar_t *wcs, size_t lngmax,
        const wchar_t *format, va_list args);

   Exigences de macros de test de fonctionnalités pour la  glibc  (voir  fea‐
   ture_test_macros(7)) :

       Toutes les fonctions ci-dessus : _XOPEN_SOURCE >= 500 ||
       _ISOC99_SOURCE ; ou cc -std=c99

DESCRIPTION

       La famille de fonctions  wprintf()  est  l’équivalent  pour  les  car‐
       actè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 (voir 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é caractères (voir  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 lngmax 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  lngmax,  con‐
              trairement   Ã   sprintf(3)   et   vsprintf(3)  (snprintf(3)  et
              vsnprintf(3) prennent un argument lngmax, 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 con‐
              verti en un caractère large par un appel à la fonction btowc(3)
              et le caractère large en résultant est écrit. Si un modifica‐
              teur 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 com‐
              mençant à l’état initial. Les caractères du tableau sont con‐
              vertis  en caractères larges (un par un par l’appel de la fonc‐
              tion mbrtowc(3) avec un état de conversion réinitialisé avant
              le  premier  octet). La chaîne de caractères larges en résul‐
              tant est écrite jusqu’au dernier  caractère  (non  compris  le
              caractère  nul  final).  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 caractère nul final, à 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  car‐
              actè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 pro‐
       gramme 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 compila‐
       tion. 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  architec‐
       tures  ne  font  pas  de même. De plus, l’utilisation des noms de car‐
       actè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 internation‐
       alisé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.07 du projet man-pages
       Linux. Une description du projet et des instructions pour signaler  des
       anomalies   peuvent   être   trouvées   à  l’adresse  http://www.ker‐
       nel.org/doc/man-pages/.

TRADUCTION

       Cette page de manuel a été traduite par Thierry Vignaud <tvignaud  AT
       mandriva  DOT  com>  en 2002, puis a été mise à jour par Alain Portal
       <aportal AT univ-montp2 DOT fr> jusqu’en 2006, et  mise  Ã  disposition
       sur http://manpagesfr.free.fr/.

       Les  mises  à jour  et corrections de la version présente dans Debian
       sont directement gérées par Nicolas François  <nicolas.francois@cen‐
       traliens.net> et l’équipe francophone de traduction de Debian.

       Veuillez   signaler   toute   erreur   de  traduction  en  écrivant  Ã
       <debian-l10n-french [AT] lists.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> ».



GNU                             26 juillet 2007                     WPRINTF(3)

COMMENTS

Add your comment here. Whitespace and linebreaks are preserved. URLs are linked automatically.
CAPTCHA

No HTML allowed. URLs will be linked with nofollow attribute. Whitespace is preserved.