Provided by: manpages-fr-dev_4.21.0-2_all bug

NOM

       strfromd, strfromf, strfroml - Convertir des nombres en virgule flottante en chaînes de caractères

BIBLIOTHÈQUE

       Bibliothèque C standard (libc, -lc)

SYNOPSIS

       #include <stdlib.h>

       int strfromd(char str[restrict .n], size_t n,
                    const char *restrict format, double fp);
       int strfromf(char str[restrict .n], size_t n,
                    const char *restrict format, float fp);
       int strfroml(char str[restrict .n], size_t n,
                    const char *restrict format, long double fp);

   Exigences de macros de test de fonctionnalités pour la glibc (consulter feature_test_macros(7)) :

       strfromd(), strfromf(), strfroml() :
           __STDC_WANT_IEC_60559_BFP_EXT__

DESCRIPTION

       Ces  fonctions convertissent une valeur en virgule flottante, fp, en une chaîne de caractères, str, selon
       une chaîne configurable format. Au plus n caractères sont écrits dans str.

       L'octet NULL final (« \0 ») est écrit si et seulement si n est suffisamment grand,  autrement  la  chaîne
       écrite est tronquée à n caractères.

       Les fonctions strfromd(), strfromf() et strfroml() sont équivalentes à :

           snprintf(str, n, format, fp);

       excepté pour la chaîne format.

   CHAÎNE DE FORMAT
       La  chaîne  format  doit  débuter  par  le  caractère « % ». Il est suivi d'une précision optionnelle qui
       commence au caractère point (.), suivie d'un entier optionnel en base décimale.  Si  aucun  entier  n'est
       donné  après  le  caractère point, une précision de zéro est utilisée. Enfin, la chaîne de formatage doit
       contenir un des indicateurs de conversion a, A, e, E, f, F, g ou G.

       L'indicateur de conversion est appliqué en se basant sur le type de  virgule  flottante  indiqué  par  le
       suffixe  de  la fonction. Ainsi, et à la différence de snprintf(), la chaîne de formatage ne contient pas
       de caractère de modification de longueur. Consultez snprintf(3) pour une  description  détaillée  de  ces
       indicateurs de conversion.

       L'implémentation est conforme à la norme C99 concernant la conversion de NaN et de valeurs infinies :

              Si  fp  est  NaN,  +NaN ou -NaN et f (ou a, e, g) est l'indicateur de conversion, la conversion se
              fait vers « nan », « nan » ou « -nan » respectivement. Si F (ou  A,  E,  G)  est  l'indicateur  de
              conversion, la conversion est alors faite vers « NAN » ou « -NAN ».

              De même si fp est infini, il est converti en [-]inf ou [-]INF.

       Une chaîne format malformée entraîne un comportement non défini.

VALEUR RENVOYÉE

       Les  fonctions  strfromd(),  strfromf()  et  strfroml()  renvoient le nombre de caractères qui aurait été
       écrits dans str si n avait eu assez d'espace, sans compter l'octet  NULL  final.  Ainsi,  une  valeur  de
       retour de n ou plus signifie que la sortie a été tronquée.

VERSIONS

       Les fonctions strfromd(), strfromf() et strfroml() sont disponibles depuis la glibc 2.25.

ATTRIBUTS

       Pour  une explication des termes utilisés dans cette section, consultez attributes(7) et la section POSIX
       Safety Concepts dans le manuel de la Bibliothèque C GNU.

       ┌─────────────────────────────────────────────────────────────┬────────────────────────┬────────────────┐
       │ InterfaceAttributValeur         │
       ├─────────────────────────────────────────────────────────────┼────────────────────────┼────────────────┤
       │                                                             │ Sécurité des threads   │ MT-Safe locale │
       │                                                             ├────────────────────────┼────────────────┤
       │ strfromd(), strfromf(), strfroml()                          │ Sécurité signaux async │ AS-Unsafe heap │
       │                                                             ├────────────────────────┼────────────────┤
       │                                                             │ Sécurité signaux async │ AC-Unsafe mem  │
       └─────────────────────────────────────────────────────────────┴────────────────────────┴────────────────┘

       Note : ces attributs sont préliminaires

STANDARDS

       C99, ISO/IEC TS 18661-1.

NOTES

       Les fonctions strfromd(), strfromf() et strfroml() prennent en compte la catégorie LC_NUMERIC de  la  lo‐
       cale utilisée.

EXEMPLES

       Pour convertir la valeur 12.1 en tant que type flottant en une chaîne utilisant la notation décimale, ré‐
       sultant en « 12.100000 » :

           #define __STDC_WANT_IEC_60559_BFP_EXT__
           #include <stdlib.h>
           int ssize = 10;
           char s[ssize];
           strfromf(s, ssize, "%f", 12.1);

       Pour  convertir  la valeur 12.3456 en tant que type flottant en une chaîne utilisant la notation décimale
       avec une précision de deux chiffres après la virgule, résultant en « 12.35 » :

           #define __STDC_WANT_IEC_60559_BFP_EXT__
           #include <stdlib.h>
           int ssize = 10;
           char s[ssize];
           strfromf(s, ssize, "%.2f", 12.3456);

       Pour convertir la valeur 12.345e19 en tant que type double en une chaîne utilisant la  notation  scienti‐
       fique avec aucun chiffre après la virgule, résultant en « 1E+20 » :

           #define __STDC_WANT_IEC_60559_BFP_EXT__
           #include <stdlib.h>
           int ssize = 10;
           char s[ssize];
           strfromd(s, ssize, "%.E", 12.345e19);

VOIR AUSSI

       atof(3), snprintf(3), strtod(3)

TRADUCTION

       La   traduction   française   de   cette   page   de   manuel   a   été   créée   par  Christophe  Blaess
       <https://www.blaess.fr/christophe/>, Stéphan Rafin  <stephan.rafin@laposte.net>,  Thierry  Vignaud  <tvi‐
       gnaud@mandriva.com>,  François  Micaux, Alain Portal <aportal@univ-montp2.fr>, Jean-Philippe Guérard <fe‐
       vrier@tigreraye.org>, Jean-Luc Coulon (f5ibh) <jean-luc.coulon@wanadoo.fr>, Julien Cristau  <jcristau@de‐
       bian.org>,   Thomas   Huriaux   <thomas.huriaux@gmail.com>,  Nicolas  François  <nicolas.francois@centra‐
       liens.net>, Florentin Duneau <fduneau@gmail.com>, Simon Paillard <simon.paillard@resel.enst-bretagne.fr>,
       Denis Barbier <barbier@debian.org>, David Prévot <david@tilapin.org>  et  Grégoire  Scano  <gregoire.sca‐
       no@malloc.fr>

       Cette  traduction  est  une  documentation libre ; veuillez vous reporter à la GNU General Public License
       version 3 concernant les conditions de copie et de distribution. Il n'y a aucune RESPONSABILITÉ LÉGALE.

       Si vous découvrez un bogue dans la traduction de cette page de manuel, veuillez envoyer un message à  de‐
       bian-l10n-french@lists.debian.org.

Pages du manuel de Linux 6.03                    5 février 2023                                      strfromd(3)