strfmon(3) Library Functions Manual strfmon(3) NOM strfmon, strfmon_l - Convertir des valeurs monetaires en chaines de caracteres BIBLIOTHEQUE Bibliotheque C standard (libc, -lc) SYNOPSIS #include ssize_t strfmon(char s[restrict .max], size_t max, const char *restrict format, ...); ssize_t strfmon_l(char s[restrict .max], size_t max, locale_t locale, const char *restrict format, ...); DESCRIPTION La fonction strfmon() met en forme les valeurs monetaires transmises en fonction de la locale courante et des specifications de la chaine de format et place le resultat dans la chaine de caractere s de taille max. La fonction strfmon_l() realise la meme fonction mais se base sur les parametres regionaux indiques par locale. Le comportement de strfmon_l() est non defini si locale est l'objet de parametres regionaux LC_GLOBAL_LOCALE (consultez duplocale(3)) ou n'est pas un identifiant d'objet de parametres regionaux valable. Les caracteres ordinaires de format sont copies 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 symbole 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 << # >> suivie 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 << . >> suivie 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 RENVOYEE La fonction strfmon() renvoie le nombre de caracteres places dans la chaine s, sans compter le caractere NULL final, a condition que tout tienne dans le tampon fourni. Sinon, il remplit errno avec la valeur E2BIG et renvoie -1. Le contenu de la chaine est indefini dans ce cas. ATTRIBUTS Pour une explication des termes utilises dans cette section, consulter attributes(7). +--------------------------+--------------------------+----------------+ |Interface | Attribut | Valeur | +--------------------------+--------------------------+----------------+ |strfmon() | Securite des threads | MT-Safe locale | +--------------------------+--------------------------+----------------+ |strfmon_l() | Securite des threads | MT-Safe | +--------------------------+--------------------------+----------------+ STANDARDS POSIX.1-2008. HISTORIQUE POSIX.1-2001. EXEMPLES L'appel strfmon(buf, sizeof(buf), "[%^=*#6n] [%=*#6i]", 1234.567, 1234.567); affiche [EUR **1234,57] [EUR **1 234,57] dans la locale nl_NL. Les locales de_DE, de_CH, en_AU et en_GB donnent pour resultat [[ **1234,57 EUR] [ **1.234,57 EUR] [ Fr. **1234.57] [ CHF **1'234.57] [ $**1234.57] [ AUD**1,234.57] [ L**1234.57] [ GBP**1,234.57] VOIR AUSSI duplocale(3), setlocale(3), sprintf(3), locale(7) TRADUCTION La traduction francaise de cette page de manuel a ete creee par Christophe Blaess , Stephan Rafin , Thierry Vignaud , Francois Micaux, Alain Portal , Jean-Philippe Guerard , Jean-Luc Coulon (f5ibh) , Julien Cristau , Thomas Huriaux , Nicolas Francois , Florentin Duneau , Simon Paillard , Denis Barbier , David Prevot et Gregoire Scano Cette traduction est une documentation libre ; veuillez vous reporter a la GNU General Public License version 3 concernant les conditions de copie et de distribution. Il n'y a aucune RESPONSABILITE LEGALE. Si vous decouvrez un bogue dans la traduction de cette page de manuel, veuillez envoyer un message a . Pages du manuel de Linux 6.06 31 octobre 2023 strfmon(3)