Provided by: manpages-ru-dev_4.18.1-1_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 ⟨https://www.gnu.org/licenses/gpl-3.0.html⟩ или более позднюю, чтобы
       узнать об условиях авторского права. Мы не несем НИКАКОЙ ОТВЕТСТВЕННОСТИ.

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