.\" -*- coding: UTF-8 -*- .\" Copyright (c) 2016, IBM Corporation. .\" Written by Wainer dos Santos Moschetta .\" .\" %%%LICENSE_START(VERBATIM) .\" Permission is granted to make and distribute verbatim copies of this .\" manual provided the copyright notice and this permission notice are .\" preserved on all copies. .\" .\" Permission is granted to copy and distribute modified versions of .\" this manual under the conditions for verbatim copying, provided that .\" the entire resulting derived work is distributed under the terms of .\" a permission notice identical to this one. .\" .\" Since the Linux kernel and libraries are constantly changing, this .\" manual page may be incorrect or out-of-date. The author(s) assume. .\" no responsibility for errors or omissions, or for damages resulting. .\" from the use of the information contained herein. The author(s) may. .\" not have taken the same level of care in the production of this. .\" manual, which is licensed free of charge, as they might when working. .\" professionally. .\" .\" Formatted or processed versions of this manual, if unaccompanied by .\" the source, must acknowledge the copyright and authors of this work. .\" %%%LICENSE_END .\" .\" References consulted: .\" Glibc 2.25 source code and manual. .\" C99 standard document. .\" ISO/IEC TS 18661-1 technical specification. .\" snprintf and other man.3 pages. .\" .\"******************************************************************* .\" .\" This file was generated with po4a. Translate the source file. .\" .\"******************************************************************* .TH STRFROMD 3 "6 марта 2019 г." GNU "Руководство программиста Linux" .SH ИМЯ strfromd, strfromf, strfroml \- преобразуют значение с плавающей запятой в строку .SH СИНТАКСИС .nf \fB#include \fP .PP \fBint strfromd(char *restrict \fP\fIstr\fP\fB, size_t \fP\fIn\fP\fB,\fP \fB const char *restrict \fP\fIformat\fP\fB, double \fP\fIfp\fP\fB);\fP \fBint strfromf(char *restrict \fP\fIstr\fP\fB, size_t \fP\fIn\fP\fB,\fP \fB const char *restrict \fP\fIformat\fP\fB, float \fP\fIfp\fP\fB);\fP \fBint strfroml(char *restrict \fP\fIstr\fP\fB, size_t \fP\fIn\fP\fB,\fP \fB const char *restrict \fP\fIformat\fP\fB, long double \fP\fIfp\fP\fB);\fP .fi .PP .RS -4 Требования макроса тестирования свойств для glibc (см. \fBfeature_test_macros\fP(7)): .RE .PP .ad l \fBstrfromd\fP(), \fBstrfromf\fP(), \fBstrfroml\fP(): .RS 4 __STDC_WANT_IEC_60559_BFP_EXT__ .RE .ad b .SH ОПИСАНИЕ Данные функции преобразуют значение с плавающей запятой \fIfp\fP в строку символов \fIstr\fP в соответствии со строкой формата \fIformat\fP. В \fIstr\fP записывается не более \fIn\fP символов. .PP The terminating null byte ('\e0') is written if and only if \fIn\fP is sufficiently large, otherwise the written string is truncated at \fIn\fP characters. .PP Функции \fBstrfromd\fP(), \fBstrfromf\fP() и \fBstrfroml\fP() эквивалентны .PP .in +4n .EX snprintf(str, n, format, fp); .EE .in .PP не считая строки \fIformat\fP. .SS "Структура строки формата" Строка \fIformat\fP должна начинаться с символа \(aq%\(aq. За ним следует необязательное значение точности, состоящее из символа точки (.) и необязательного десятичного числа. Если число не указано, то используется точность ноль. В конце строка формата должна содержать один из преобразователей: \fBa\fP, \fBA\fP, \fBe\fP, \fBE\fP, \fBf\fP, \fBF\fP, \fBg\fP или \fBG\fP. .PP Преобразователи применяются в соответствии с типом плавающей запятой, представленным суффиксом функции. В связи с этим, в отличии от \fBsnprintf\fP() строка формата не содержит символа модификатора длины. Подробное описание преобразователей смотрите в \fBsnprintf\fP(3). .PP Для значений бесконечности и NaN реализация соответствует стандарту C99: .PP .RS Если \fIfp\fP равно NaN, +NaN или \-NaN и указан преобразователь \fBf\fP (или \fBa\fP, \fBe\fP, \fBg\fP), то выполняется преобразование в «nan», «nan» или «\-nan», соответственно. Если указан преобразователь \fBF\fP (или \fBA\fP, \fBE\fP, \fBG\fP), то выполняется преобразование в «NAN» или «\-NAN». .PP Если \fIfp\fP равно бесконечности, то она схожим образом преобразуется в [\-]inf или [\-]INF. .RE .PP Некорректная строка \fIformat\fP вызывает непредсказуемое поведение. .SH "ВОЗВРАЩАЕМОЕ ЗНАЧЕНИЕ" The \fBstrfromd\fP(), \fBstrfromf\fP(), and \fBstrfroml\fP() functions return the number of characters that would have been written in \fIstr\fP if \fIn\fP had enough space, not counting the terminating null byte. Thus, a return value of \fIn\fP or greater means that the output was truncated. .SH ВЕРСИИ Функции \fBstrfromd\fP(), \fBstrfromf\fP() и \fBstrfroml\fP() доступны в glibc начиная с версии 2.25. .SH АТРИБУТЫ Описание терминов данного раздела смотрите в \fBattributes\fP(7) и разделе \fBPOSIX Safety Concepts\fP руководства библиотеки GNU C. .PP .TS allbox; lbw11 lb lb l l l. Интерфейс Атрибут Значение T{ \fBstrfromd\fP(), \fBstrfromf\fP(), \fBstrfroml\fP() T} Безвредность в нитях MT\-Safe locale \^ Безопасность в асинхронных сигналах AS\-Unsafe heap \^ Безопасность в асинхронной отмене AC\-Unsafe mem .TE .sp 1 Замечание: эти атрибуты только предварительны. .SH "СООТВЕТСТВИЕ СТАНДАРТАМ" C99, ISO/IEC TS 18661\-1. .SH ЗАМЕЧАНИЯ Функции \fBstrfromd\fP(), \fBstrfromf\fP() и \fBstrfroml\fP() учитывают категорию \fBLC_NUMERIC\fP текущей локали. .SH ПРИМЕРЫ Преобразует значение 12.1 с типом float в строку используя десятичное написание, равную «12.100000»: .PP .in +4n .EX #define __STDC_WANT_IEC_60559_BFP_EXT__ #include int ssize = 10; char s[ssize]; strfromf(s, ssize, "%f", 12.1); .EE .in .PP Преобразует значение 12.3456 с типом float в строку используя десятичное написание с двумя цифрами точности, равную «12.35»: .PP .in +4n .EX #define __STDC_WANT_IEC_60559_BFP_EXT__ #include int ssize = 10; char s[ssize]; strfromf(s, ssize, "%.2f", 12.3456); .EE .in .PP Преобразует значение 12.345e19 с типом double в строку используя научное написание с нулевой точностью, равную «1E+20»: .PP .in +4n .EX #define __STDC_WANT_IEC_60559_BFP_EXT__ #include int ssize = 10; char s[ssize]; strfromd(s, ssize, "%.E", 12.345e19); .EE .in .SH "СМ. ТАКЖЕ" \fBatof\fP(3), \fBsnprintf\fP(3), \fBstrtod\fP(3) .SH ЗАМЕЧАНИЯ Эта страница является частью проекта Linux \fIman\-pages\fP версии 5.10. Описание проекта, информацию об ошибках и последнюю версию этой страницы можно найти по адресу \%https://www.kernel.org/doc/man\-pages/. .PP .SH ПЕРЕВОД Русский перевод этой страницы руководства был сделан Alexander Golubev , Azamat Hackimov , Hotellook, Nikita , Spiros Georgaras , Vladislav , Yuri Kozlov и Иван Павлов . .PP Этот перевод является бесплатной документацией; прочитайте .UR https://www.gnu.org/licenses/gpl-3.0.html Стандартную общественную лицензию GNU версии 3 .UE или более позднюю, чтобы узнать об условиях авторского права. Мы не несем НИКАКОЙ ОТВЕТСТВЕННОСТИ. .PP Если вы обнаружите ошибки в переводе этой страницы руководства, пожалуйста, отправьте электронное письмо на .MT man-pages-ru-talks@lists.sourceforge.net .ME .