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(size_t size; char s[restrict size], size_t size, const char *restrict format, ...); ssize_t strfmon_l(size_t size; char s[restrict size], size_t size, locale_t l, const char *restrict format, ...); DESCRIPTION The strfmon() function formats the specified monetary amount according to the current locale and format specification format and places the result in the character array s of size bytes. The strfmon_l() function performs the same task, but uses the locale specified by l. The behavior of strfmon_l() is undefined if l is the special locale object LC_GLOBAL_LOCALE (see duplocale(3)) or is not a valid locale object handle. 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 | +--------------------------+--------------------------+----------------+ NORMES 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.18 8 fevrier 2026 strfmon(3)