Provided by:
manpages-fr-dev_3.27fr1.4-1_all 
NOM
strfmon - Convertir des valeurs monetaires en chaines de caracteres
SYNOPSIS
#include <monetary.h>
ssize_t strfmon(char *s, size_t max, const char *format, ...);
DESCRIPTION
La fonction strfmon() met en forme les valeurs transmises, en fonction
des specifications de la chaine de format et place le resultat dans la
chaine de caractere s de taille max.
Les caracteres ordinaires de format sont copie dans s sans conversion.
Les indicateurs de conversion sont introduits par un caractere << % >>.
Immediatement a sa suite, il peut y avoir zero ou plusieurs drapeaux
parmi les suivants :
=f Le caractere unique f sert comme caractere numerique de
remplissage (a utiliser avec une precision a gauche, voir plus
bas). Sans indication, il s'agit du caractere espace.
^ Ne pas utiliser les caracteres de regroupement (par milliers par
exemple) qui peuvent etre definis pour la localisation en cours.
Par defaut, le groupement est actif.
( or + L'attribut << ( >> indique que les valeurs negatives doivent
etre encadrees entre parentheses. L'attribut << + >> indique que
le signe doit etre traite de la maniere par defaut, c'est-a-dire
les valeurs precedees de l'indication locale de signe. Par
exemple, rien pour les valeurs positives et << - >> pour les
negatives.
! Omettre le signe monetaire.
- Justifier tous les champs a gauche. Par defaut, la justification
est a droite.
Ensuite, peut venir un champ de largeur : un chiffre decimal indiquant
la largeur minimale en octets. Par defaut, elle vaut 0. Un resultat
plus petit que cette largeur est complete avec des espaces (a gauche a
moins que la justification soit a gauche).
Ensuite, il peut y avoir une precision a gauche de la forme << # >>
suivi par une chaine de chiffres decimaux. Si le nombre de chiffres a
gauche de la virgule est inferieur a cette valeur, la representation
est completee a gauche avec le caractere de remplissage. Les caracteres
de groupement ne sont pas comptes dans la largeur du champ.
Ensuite, il peut y avoir une precision a droite de la forme << . >>
suivi par une chaine de chiffres decimaux. La valeur est arrondie a ce
nombre de decimales avant d'etre mise en forme. La valeur par defaut
est precisee dans les champs frac_digits et int_frac_digits de la
localisation en cours. Si la precision a droite est 0, aucun symbole
decimal n'est affiche (le symbole decimal est determine par
LC_MONETARY, et peut differer de celui indique dans LC_NUMERIC).
Finalement, la specification de conversion doit se terminer par un
caractere de conversion. Les trois caracteres disponibles sont :
% (Dans ce cas, la specification entiere doit etre exactement
<< %% >>). Placer un caractere << % >> dans la chaine de
resultat.
i Un argument de type double est converti en utilisant les formats
internationaux des monnaies dans la localisation en cours.
n Un argument de type double est converti en utilisant les formats
nationaux des monnaies dans la localisation en cours.
VALEUR RENVOY'EE
La fonction strfmon() renvoie le nombre de caracteres places dans la
chaine s, sans compter le caractere nul final, a condition que tout
tienne dans le tampon fourni. Sinon, il rempli errno avec la valeur
E2BIG et renvoie -1. Le contenu de la chaine est indefini dans ce cas.
CONFORMIT'E
Pas dans POSIX.1-2001. Presente sur plusieurs autres systemes.
EXEMPLE
L'appel
strfmon(buf, sizeof(buf), "[%^=*#6n] [%=*#6i]",
1234.567, 1234.567);
affiche
[ fl **1234,57] [ NLG **1 234,57]
Dans la localisation hollandaise (fl etant << florijnen >> et NLG
<< Netherlands Guilders >>). Le caractere de groupement est horrible
car il prend autant de place qu'un chiffre, alors qu'il ne devrait
occuper qu'un demi-espace, ce qui peut induire en erreur. Etonnamment,
le << fl >> est precede et suivi par un espace, et << NLG >> est
precede par un espace et suivi par deux. Il s'agit peut-etre d'un bogue
dans le fichier de localisation. Les localisations italienne,
australienne, suisse, et portugaise donnent
[ L. **1235] [ ITL **1.235]
[ $**1234.57] [ AUD **1,234.57]
[Fr. **1234,57] [CHF **1.234,57]
[ **1234$57Esc] [ **1.234$57PTE ]
VOIR AUSSI
setlocale(3), sprintf(3), locale(7)
COLOPHON
Cette page fait partie de la publication 3.27 du projet man-pages
Linux. Une description du projet et des instructions pour signaler des
anomalies peuvent etre trouvees a l'adresse
<URL:http://www.kernel.org/doc/man-pages/>.
TRADUCTION
Depuis 2010, cette traduction est maintenue a l'aide de l'outil po4a
<URL:http://po4a.alioth.debian.org/> par l'equipe de traduction
francophone au sein du projet perkamon
<URL:http://perkamon.alioth.debian.org/>.
Christophe Blaess <URL:http://www.blaess.fr/christophe/> (1996-2003),
Alain Portal <URL:http://manpagesfr.free.fr/> (2003-2006). Nicolas
Francois et l'equipe francophone de traduction de Debian (2006-2009).
Veuillez signaler toute erreur de traduction en ecrivant a
<debian-l10n-french@lists.debian.org> ou par un rapport de bogue sur le
paquet manpages-fr.
Vous pouvez toujours avoir acces a la version anglaise de ce document
en utilisant la commande << man -L C <section> <page_de_man> >>.
Linux 5 decembre 2000 STRFMON(3)