Votre IP: 38.107.179.241 
  
 
Google
 
Accueil e-mail Linux
Linux
Perl
Perl
C
Langage C
Dico
Dictionnaire
Biblio liens
Bibliothèque de liens
Index articles
Index articles
 

Date création : 27-03-2008 20:23:44

Linux  Vous êtes dans : GNU/Linux Astuces / Pages man [Section3 - Sous-fonctions]


WPRINTF

 

Index

  1. NOM
  2. SYNOPSIS
  3. DESCRIPTION
  4. VALEUR RENVOYÉE
  5. CONFORMITÉ
  6. VOIR AUSSI
  7. NOTES
  8. TRADUCTION

 

NOMIndex

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

SYNOPSISIndex

#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, ...);

#include <stdarg.h>

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);
 

DESCRIPTIONIndex

La famille de fonctions wprintf() est l'équivalent pour les caractères larges de la famille de fonctions printf(). 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 la fonction fwide() 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 la fonction fwide 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(), vprintf(), fprintf(), vfprintf(), sprintf() et vsprintf(), 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, contrairement à sprintf() et vsprintf() (snprintf() et vsnprintf() 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 converti en un caractère large par un appel à la fonction btowc() 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 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). 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 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ÉEIndex

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ÉIndex

C99.  

VOIR AUSSIIndex

fprintf(3), fputwc(3), fwide(3), printf(3), snprintf(3).  

NOTESIndex

Le comportement de wprintf() et compagnie dépend de la catégorie LC_CTYPE de la localisation en cours.
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. GNU libc 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 gettext() ou iconv(), suivi de mbstowcs()).  

TRADUCTIONIndex

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.
La traduction de cette page de manuel est basée sur les traductions disponibles sur http://manpagesfr.free.fr/, mais est gérée par l'équipe francophone de traduction de Debian au travers de la liste de discussion debian-l10n-french.
Veuillez signaler toute erreur de traduction 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> ».


Création : octobre 2007  © Tous droits réservés 2007 linux-perl-c
Valid HTML 4.01 TransitionalValid CSS