strfromd(3) - wariua/manpages-ko GitHub Wiki
strfromd, strfromf, strfroml - λΆλμμμ κ°μ λ¬Έμμ΄λ‘ λ³ννκΈ°
#include <stdlib.h>
int strfromd(char *restrict str, size_t n,
const char *restrict format, double fp);
int strfromf(char *restrict str, size_t n,
const char *restrict format, float fp);
int strfroml(char *restrict str, size_t n,
const char *restrict format, long double fp);
glibc κΈ°λ₯ νμΈ λ§€ν¬λ‘ μ건 (feature_test_macros(7) μ°Έκ³ ):
-
strfromd()
,strfromf()
,strfroml()
: __STDC_WANT_IEC_60559_BFP_EXT__
μ΄ ν¨μλ€μ μ€μ κ°λ₯ν format
μ λ°λΌ λΆλμμμ κ° fp
λ₯Ό λ¬Έμμ΄ str
μΌλ‘ λ³ννλ€. str
μ μ΅λ n
κ° λ¬Έμλ₯Ό μ μ₯νλ€.
n
μ΄ μΆ©λΆν ν° κ²½μ°μλ§ μ’
λ£μ© λ λ¬Έμ('\0'
)λ₯Ό μ¨ λ£λλ€. κ·Έλ μ§ μμΌλ©΄ n
κ° λ¬Έμμμ μλ¦° λ¬Έμμ΄μ μ¨ λ£λλ€.
strfromd()
, strfromf()
, strfroml()
ν¨μλ format
λ¬Έμμ΄μ λΉΌλ©΄ λ€μκ³Ό λλ±νλ€.
snprintf(str, n, format, fp);
format
λ¬Έμμ΄μ λ¬Έμ '%'λ‘ μμν΄μΌ νλ€. κ·Έ λ€μμ μ νμ μΌλ‘ μ λ°λκ° μ€λλ°, λ§μΉ¨ν λ¬Έμ(.)λ‘ μμνκ³ μ νμ μΌλ‘ 10μ§λ² μ μκ° λ°λΌμ¨λ€. λ§μΉ¨ν λ€μμ μ μλ₯Ό μ§μ νμ§ μμΌλ©΄ μ λ°λλ₯Ό 0μΌλ‘ νλ€. λ§μ§λ§μΌλ‘ μμ λ¬Έμμ΄μλ λ³ν μ§μ μ a
, A
, e
, E
, f
, F
, g
, 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
λ¬Έμμ΄λ‘ μΈν λμ λ°©μμ κ·μ λμ΄ μμ§ μλ€.
strfromd()
, strfromf()
, strfroml()
ν¨μλ n
μ΄ μΆ©λΆν ν΄ λ str
μ μ¨ λ£κ² λλ λ¬Έμ κ°μλ₯Ό λ°ννλ€. μ’
λ£μ© λ λ¬Έμλ μΈμ§ μλλ€. λ°λΌμ λ°ν κ°μ΄ n
μ΄μμ΄λ©΄ μΆλ ₯μ΄ μλ Έλ€λ λ»μ΄λ€.
glibc λ²μ 2.25λΆν° strfromd()
, strfromf()
, strfroml()
ν¨μκ° μ¬μ© κ°λ₯νλ€.
μ΄ μ μμ μ¬μ©νλ μ©μ΄λ€μ λν μ€λͺ μ attributes(7)μ GNU C λΌμ΄λΈλ¬λ¦¬ λ§€λ΄μΌ POSIX Safety Concepts μ μ 보λΌ.
μΈν°νμ΄μ€ | μμ± | κ° |
---|---|---|
strfromd() ,strfromf() ,strfroml()
|
μ€λ λ μμ μ± | MT-Safe locale |
λΉλκΈ° μκ·Έλ μμ μ± | AS-Unsafe heap | |
λΉλκΈ° μ·¨μ μμ μ± | AC-Unsafe mem |
μ°Έκ³ : μλΉ μμ±λ€μ΄λ€.
C99, ISO/IEC TS 18661-1.
strfromd()
, strfromf()
, strfroml()
ν¨μμμλ νμ¬ λ‘μΊμ LC_NUMERIC
λ²μ£Όλ₯Ό λ°μ§λ€.
float
νμ
κ° 12.1μ 10μ§λ² λ¬Έμμ΄λ‘ λ³ννλ©΄ "12.100000"κ° λμ¨λ€.
#define __STDC_WANT_IEC_60559_BFP_EXT__
#include <stdlib.h>
int ssize = 10;
char s[ssize];
strfromf(s, ssize, "%f", 12.1);
float
νμ
κ° 12.3456μ μ λ°λ 2μλ¦¬μΈ 10μ§λ² λ¬Έμμ΄λ‘ λ³ννλ©΄ "12.35"κ° λμ¨λ€.
#define __STDC_WANT_IEC_60559_BFP_EXT__
#include <stdlib.h>
int ssize = 10;
char s[ssize];
strfromf(s, ssize, "%.2f", 12.3456);
double
νμ
κ° 12.345e19λ₯Ό μ λ°λ 0μλ¦¬μΈ κ³Όνμ κΈ°μλ² λ¬Έμμ΄λ‘ λ³ννλ©΄ "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)
2019-03-06