strfromd(3) - wariua/manpages-ko GitHub Wiki

NAME

strfromd, strfromf, strfroml - λΆ€λ™μ†Œμˆ˜μ  값을 λ¬Έμžμ—΄λ‘œ λ³€ν™˜ν•˜κΈ°

SYNOPSIS

#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__

DESCRIPTION

이 ν•¨μˆ˜λ“€μ€ μ„€μ • κ°€λŠ₯ν•œ 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 λ¬Έμžμ—΄λ‘œ μΈν•œ λ™μž‘ 방식은 κ·œμ •λ˜μ–΄ μžˆμ§€ μ•Šλ‹€.

RETURN VALUE

strfromd(), strfromf(), strfroml() ν•¨μˆ˜λŠ” n이 μΆ©λΆ„νžˆ 클 λ•Œ str에 써 λ„£κ²Œ λ˜λŠ” 문자 개수λ₯Ό λ°˜ν™˜ν•œλ‹€. μ’…λ£Œμš© 널 λ¬ΈμžλŠ” μ„Έμ§€ μ•ŠλŠ”λ‹€. λ”°λΌμ„œ λ°˜ν™˜ 값이 n 이상이면 좜λ ₯이 μž˜λ Έλ‹€λŠ” λœ»μ΄λ‹€.

VERSIONS

glibc 버전 2.25λΆ€ν„° strfromd(), strfromf(), strfroml() ν•¨μˆ˜κ°€ μ‚¬μš© κ°€λŠ₯ν•˜λ‹€.

ATTRIBUTES

이 μ ˆμ—μ„œ μ‚¬μš©ν•˜λŠ” μš©μ–΄λ“€μ— λŒ€ν•œ μ„€λͺ…은 attributes(7)와 GNU C 라이브러리 맀뉴얼 POSIX Safety Concepts μ ˆμ„ 보라.

μΈν„°νŽ˜μ΄μŠ€ 속성 κ°’
strfromd(),
strfromf(),
strfroml()
μŠ€λ ˆλ“œ μ•ˆμ „μ„± MT-Safe locale
비동기 μ‹œκ·Έλ„ μ•ˆμ „μ„± AS-Unsafe heap
비동기 μ·¨μ†Œ μ•ˆμ „μ„± AC-Unsafe mem

μ°Έκ³ : μ˜ˆλΉ„ 속성듀이닀.

CONFORMING TO

C99, ISO/IEC TS 18661-1.

NOTES

strfromd(), strfromf(), strfroml() ν•¨μˆ˜μ—μ„œλŠ” ν˜„μž¬ 둜캘의 LC_NUMERIC λ²”μ£Όλ₯Ό λ”°μ§„λ‹€.

EXAMPLE

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

SEE ALSO

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


2019-03-06

⚠️ **GitHub.com Fallback** ⚠️