Provided by: manpages-fr-dev_3.27fr1.4-1_all bug

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)