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

ИМЯ

       strfromd, strfromf, strfroml - преобразуют значение с плавающей запятой в строку

LIBRARY

       Standard C library (libc, -lc)

СИНТАКСИС

       #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);

   Требования макроса тестирования свойств для glibc (см. feature_test_macros(7)):

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

ОПИСАНИЕ

       Данные  функции  преобразуют  значение  с  плавающей  запятой  fp в строку символов str в соответствии со
       строкой формата format. В str записывается не более n символов.

       The terminating null byte ('\0') is written if and only if n is sufficiently large, otherwise the written
       string is truncated at n characters.

       Функции strfromd(), strfromf() и strfroml() эквивалентны

           snprintf(str, n, format, fp);

       не считая строки format.

   Структура строки формата
       The format string must start with the character '%'.  This is followed by  an  optional  precision  which
       starts  with  the  period  character  (.),  followed  by  an  optional decimal integer.  If no integer is
       specified after the period character, a precision of zero is used.  Finally,  the  format  string  should
       have one of the conversion specifiers a, A, e, E, f, F, g, or G.

       Преобразователи применяются в соответствии с типом плавающей запятой, представленным суффиксом функции. В
       связи  с  этим,  в отличии от snprintf() строка формата не содержит символа модификатора длины. Подробное
       описание преобразователей смотрите в snprintf(3).

       Для значений бесконечности и NaN реализация соответствует стандарту C99:

              Если fp равно NaN, +NaN или -NaN и  указан  преобразователь  f  (или  a,  e,  g),  то  выполняется
              преобразование в «nan», «nan» или «-nan», соответственно. Если указан преобразователь F (или A, E,
              G), то выполняется преобразование в «NAN» или «-NAN».

              Если fp равно бесконечности, то она схожим образом преобразуется в [-]inf или [-]INF.

       Некорректная строка format вызывает непредсказуемое поведение.

ВОЗВРАЩАЕМОЕ ЗНАЧЕНИЕ

       The  strfromd(),  strfromf(),  and  strfroml()  functions return the number of characters that would have
       been written in str if n had enough space, not counting the terminating null byte.  Thus, a return  value
       of n or greater means that the output was truncated.

ВЕРСИИ

       The strfromd(), strfromf(), and strfroml()  functions are available since glibc 2.25.

АТРИБУТЫ

       Описание  терминов  данного  раздела смотрите в attributes(7) и разделе POSIX Safety Concepts руководства
       библиотеки GNU C.

       ┌───────────────────────────────────────────────────────────────┬──────────────────────┬────────────────┐
       │ ИнтерфейсАтрибутЗначение       │
       ├───────────────────────────────────────────────────────────────┼──────────────────────┼────────────────┤
       │                                                               │ Безвредность в нитях │ MT-Safe locale │
       │                                                               ├──────────────────────┼────────────────┤
       │ strfromd(), strfromf(), strfroml()                            │ Async-signal safety  │ AS-Unsafe heap │
       │                                                               ├──────────────────────┼────────────────┤
       │                                                               │ Async-cancel safety  │ AC-Unsafe mem  │
       └───────────────────────────────────────────────────────────────┴──────────────────────┴────────────────┘

       Замечание: эти атрибуты только предварительны.

СТАНДАРТЫ

       C99, ISO/IEC TS 18661-1.

ЗАМЕЧАНИЯ

       Функции strfromd(), strfromf() и strfroml() учитывают категорию LC_NUMERIC текущей локали.

ПРИМЕРЫ

       Преобразует значение 12.1 с типом float в строку используя десятичное написание, равную «12.100000»:

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

       Преобразует значение 12.3456 с типом float в  строку  используя  десятичное  написание  с  двумя  цифрами
       точности, равную «12.35»:

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

       Преобразует  значение  12.345e19 с типом double в строку используя научное написание с нулевой точностью,
       равную «1E+20»:

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

СМ. ТАКЖЕ

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

ПЕРЕВОД

       Русский перевод этой страницы  руководства  был  сделан  Alexander  Golubev  <fatzer2@gmail.com>,  Azamat
       Hackimov   <azamat.hackimov@gmail.com>,   Hotellook,   Nikita   <zxcvbnm3230@mail.ru>,  Spiros  Georgaras
       <sng@hellug.gr>, Vladislav <ivladislavefimov@gmail.com>, Yuri Kozlov <yuray@komyakino.ru> и  Иван  Павлов
       <pavia00@gmail.com>

       Этот перевод является бесплатной документацией; прочитайте Стандартную общественную лицензию GNU версии 3
       или более позднюю, чтобы узнать об условиях авторского права. Мы не несем НИКАКОЙ ОТВЕТСТВЕННОСТИ.

       Если  вы обнаружите ошибки в переводе этой страницы руководства, пожалуйста, отправьте электронное письмо
       на man-pages-ru-talks@lists.sourceforge.net.

Linux man-pages 6.03                            5 февраля 2023 г.                                    strfromd(3)