open_memstream(3) - wariua/manpages-ko GitHub Wiki
open_memstream, open_wmemstream - ๋์ ๋ฉ๋ชจ๋ฆฌ ๋ฒํผ ์คํธ๋ฆผ ์ด๊ธฐ
#include <stdio.h>
FILE *open_memstream(char **ptr, size_t *sizeloc);
#include <wchar.h>
FILE *open_wmemstream(wchar_t **ptr, size_t *sizeloc);
glibc ๊ธฐ๋ฅ ํ์ธ ๋งคํฌ๋ก ์๊ฑด (feature_test_macros(7) ์ฐธ๊ณ ):
-
open_memstream()
,open_wmemstream()
: -
- glibc 2.10๋ถํฐ:
_POSIX_C_SOURCE >= 200809L
- glibc 2.10 ์ :
_GNU_SOURCE
open_memstream()
ํจ์๋ ๋ฉ๋ชจ๋ฆฌ ๋ฒํผ์ ์ฐ๊ธฐ๋ฅผ ํ๊ธฐ ์ํ ์คํธ๋ฆผ์ ์ฐ๋ค. ํจ์์์ ๋ฒํผ๋ฅผ ๋์ ์ผ๋ก ํ ๋นํ๋ฉฐ ํ์์ ๋ฐ๋ผ ๋ฒํผ๊ฐ ์๋์ผ๋ก ์ปค์ง๋ค. ์ฒ์์๋ ๋ฒํผ ํฌ๊ธฐ๊ฐ 0์ด์ด์ผ ํ๋ค. ์คํธ๋ฆผ์ ๋ซ์ ํ์ ํธ์ถ์๊ฐ ๊ทธ ๋ฒํผ๋ฅผ free(3) ํด์ผ ํ๋ค.
ptr
๊ณผ sizeloc
์ด ๊ฐ๋ฆฌํค๋ ์์น๋ฅผ ํตํด ๋ฒํผ์ ํ์ฌ ์์น์ ํฌ๊ธฐ๋ฅผ ์๋ ค ์ค๋ค. ์ด ํฌ์ธํฐ๋ค์ด ๊ฐ๋ฆฌํค๋ ์์น๋ ์คํธ๋ฆผ์ด ํ๋ฌ์ ๋ ๋(fflush(3))๋ง๋ค, ๊ทธ๋ฆฌ๊ณ ์คํธ๋ฆผ์ด ๋ซํ ๋(fclose(3)) ๊ฐฑ์ ๋๋ค. ํธ์ถ์๊ฐ ์คํธ๋ฆผ์ ์ถ๊ฐ๋ก ์ถ๋ ฅ์ ์ํํ์ง ์๋ ๋์๋ง ๊ทธ ๊ฐ๋ค์ด ์ ํจํ๋ค. ์ถ๊ฐ๋ก ์ถ๋ ฅ์ ์ํํ ๊ฒฝ์ฐ์ ๊ทธ ๊ฐ๋ค์ ์ ๊ทผํ๋ ค๋ฉด ๋จผ์ ์คํธ๋ฆผ์ ๋ค์ ํ๋ฌ์ ํด์ผ ํ๋ค.
๋ฒํผ ๋์ ๋ ๋ฐ์ดํธ๋ฅผ ์ ์งํ๋ค. ์ด ๋ฐ์ดํธ๋ sizeloc
์ ์ ์ฅ๋๋ ํฌ๊ธฐ ๊ฐ์ ํฌํจ๋์ง ์๋๋ค.
์คํธ๋ฆผ์ ํ์ฌ ์์น ๊ฐ๋
์ด ์์ผ๋ฉฐ ์ฒ์์๋ 0(๋ฒํผ ์์์ )์ด๋ค. ๊ฐ ์ฐ๊ธฐ ๋์์์ ๊ทธ ๋ฒํผ ์์น๋ฅผ ๋ฌต์์ ์ผ๋ก ์กฐ์ ํ๋ค. fseek(3)
๋ด์ง fseeko(3)
๋ก ์คํธ๋ฆผ์ ๋ฒํผ ์์น๋ฅผ ๋ช
์์ ์ผ๋ก ๋ฐ๊ฟ ์ ์๋ค. ์ง๊ธ๊น์ง ๊ธฐ๋กํ ๋ฐ์ดํฐ์ ๋ ๋๋จธ๋ก ๋ฒํผ ์์น๋ฅผ ์ฎ๊ธฐ๋ฉด ๊ทธ ์ฌ์ด ๊ณต๊ฐ์ ๋ ๋ฌธ์๋ก ์ฑ์ด๋ค.
open_wmemstream()
์ open_memstream()
๊ณผ ๋น์ทํ๋ ๋ฐ์ดํธ ๋์ ํ์ฅ ๋ฌธ์์์ ๋์ํ๋ค.
์ฑ๊ณต ์๋ฃ ์ open_memstream()
๊ณผ open_wmemstream()
์ FILE
ํฌ์ธํฐ๋ฅผ ๋ฐํํ๋ค. ์๋๋ฉด NULL์ ๋ฐํํ๋ฉฐ ์ค๋ฅ๋ฅผ ๋ํ๋ด๋๋ก errno
๋ฅผ ์ค์ ํ๋ค.
open_memstream()
์ glibc 1.0.x๋ถํฐ ์ด๋ฏธ ์ฌ์ฉ ๊ฐ๋ฅํ๋ค. open_wmemstream()
์ glibc 2.4๋ถํฐ ์ฌ์ฉ ๊ฐ๋ฅํ๋ค.
์ด ์ ์์ ์ฌ์ฉํ๋ ์ฉ์ด๋ค์ ๋ํ ์ค๋ช ์ attributes(7)๋ฅผ ๋ณด๋ผ.
์ธํฐํ์ด์ค | ์์ฑ | ๊ฐ |
---|---|---|
open_memstream() ,open_wmemstream()
|
์ค๋ ๋ ์์ ์ฑ | MT-Safe |
POSIX.1-2008. ์ด ํจ์๋ค์ POSIX.1-2001์ ๋ช ์ธ๋์ด ์์ง ์์ผ๋ฉฐ ๋ค๋ฅธ ์์คํ ๋ค์์ ๋๋ฆฌ ์ฌ์ฉ ๊ฐ๋ฅํ์ง ์๋ค.
์ด ํจ์๋ค์ด ๋ฐํํ๋ ํ์ผ ์คํธ๋ฆผ์๋ ์ฐ๊ณ๋ ํ์ผ ๋์คํฌ๋ฆฝํฐ๊ฐ ์๋ค. (์ฆ ๋ฐํ๋ ์คํธ๋ฆผ์ fileno(3)๋ฅผ ํธ์ถํ๋ฉด ์ค๋ฅ๋ฅผ ๋ฐํํ๊ฒ ๋๋ค.)
glibc ๋ฒ์ 2.7 ์ ์์๋ open_memstream()
์ผ๋ก ๋ง๋ ์คํธ๋ฆผ ๋ ๋๋จธ๋ก ์ด๋์ ํ๋ฉด ๋ฒํผ๊ฐ ํ์ฅ๋์ง ์๋๋ค. ๋์ fseek(3)
ํธ์ถ์ด ์คํจํ๊ณ -1์ ๋ฐํํ๋ค.
fmemopen(3) ์ฐธ๊ณ .
fmemopen(3), fopen(3), setbuf(3)
2017-09-15