tmpnam(3) - wariua/manpages-ko GitHub Wiki
tmpnam, tmpnam_r - ์์ ํ์ผ ์ด๋ฆ ๋ง๋ค๊ธฐ
#include <stdio.h>
char *tmpnam(char *s);
char *tmpnam_r(char *s);
glibc ๊ธฐ๋ฅ ํ์ธ ๋งคํฌ๋ก ์๊ฑด (feature_test_macros(7) ์ฐธ๊ณ ):
-
tmpnam_r()
: -
- glibc 2.19๋ถํฐ:
_DEFAULT_SOURCE
- glibc 2.19๊น์ง:
_BSD_SOURCE || _SVID_SOURCE
์ฃผ์: ์ด ํจ์๋ค์ ์ฐ์ง ๋ง ๊ฒ. ๋์ mkstemp(3)๋ tmpfile(3)์ ์ฌ์ฉํ๋ผ.
tmpnam()
ํจ์๋ ์ ํจํ ํ์ผ๋ช
์ธ ๋ฌธ์์ด์ ๋ํ ํฌ์ธํฐ๋ฅผ ๋ฐํํ๋ค. ์ด๋ ์์ ์๋ ๊ทธ ์ด๋ฆ์ผ๋ก ๋ ํ์ผ์ด ์กด์ฌํ์ง ์์ผ๋ฏ๋ก ์์งํ ํ๋ก๊ทธ๋๋จธ๋ผ๋ฉด ์์ ํ์ผ์ ์ ๋นํ ์ด๋ฆ์ด๋ผ๊ณ ์๊ฐํ ์๋ ์๋ค. ์ธ์ s
๊ฐ NULL์ด๋ฉด ๋ด๋ถ ์ ์ ๋ฒํผ์๋ค ์ด๋ฆ์ ์์ฑํ๋ฏ๋ก ๋ค์ ๋ฒ tmpnam()
ํธ์ถ๋ก ๋ฎ์ด ์จ์ง ์๋ ์๋ค. s
๊ฐ NULL์ด ์๋๋ฉด s
๊ฐ ๊ฐ๋ฆฌํค๋ (๊ธธ์ด๊ฐ ์ต์ L_tmpnam
์ธ) ๋ฌธ์ ๋ฐฐ์ด๋ก ์ด๋ฆ์ ๋ณต์ฌํ๋ฉฐ ์ฑ๊ณต ์ ๊ฐ s
๋ฅผ ๋ฐํํ๋ค.
์์ฑ๋๋ ๊ฒฝ๋ก๋ช
์๋ ๋๋ ํฐ๋ฆฌ ์ ๋๋ถ P_tmpdir
์ด ์๋ค. (L_tmpnam
๊ณผ P_tmpdir
๋ชจ๋ <stdio.h>
์ ์ ์๋ผ ์๋ค. ์๋์ ์ธ๊ธํ๋ TMP_MAX
๋ ๋ง์ฐฌ๊ฐ์ง.)
tmpnam_r()
ํจ์๋ tmpnam()
๊ณผ ๊ฐ์ ์ผ์ ์ํํ๋ s
๊ฐ NULL์ด๋ฉด (์ค๋ฅ๋ฅผ ๋ํ๋ด๋) NULL์ ๋ฐํํ๋ค.
์ด ํจ์๋ค์ ์ ์ผํ ์์ ํ์ผ๋ช ์ ๋ํ ํฌ์ธํฐ๋ฅผ ๋ฐํํ๋ค. ์ ์ผํ ์ด๋ฆ์ ์์ฑํ ์ ์์ผ๋ฉด NULL์ ๋ฐํํ๋ค.
์ด๋ค ์ค๋ฅ๋ ์ ์๋์ด ์์ง ์๋ค.
์ด ์ ์์ ์ฌ์ฉํ๋ ์ฉ์ด๋ค์ ๋ํ ์ค๋ช ์ attributes(7)๋ฅผ ๋ณด๋ผ.
์ธํฐํ์ด์ค | ์์ฑ | ๊ฐ |
---|---|---|
tmpnam() |
์ค๋ ๋ ์์ ์ฑ | MT-Unsafe race:tmpnam/!s |
tmpnam_r() |
์ค๋ ๋ ์์ ์ฑ | MT-Safe |
tmpnam()
: SVr4, 4.3BSD, C89, C99, POSIX.1-2001. POSIX.1-2008์์ tmpnam()
์ ๊ตฌ์์ผ๋ก ํ์ํ์๋ค.
tmpnam_r()
์ ๋นํ์ค ํ์ฅ์ด๋ฉฐ ๋ช๋ช ๋ค๋ฅธ ์์คํ
์์๋ ์ฌ์ฉ ๊ฐ๋ฅํ๋ค.
tmpnam()
ํจ์๋ TMP_MAX
๋ฒ๊น์ง๋ ํธ์ถ ๋๋ง๋ค ๋ค๋ฅธ ๋ฌธ์์ด์ ๋ง๋ค์ด ๋ธ๋ค. TMP_MAX
๋ฒ ๋๊ฒ ํธ์ถํ๋ ๊ฒฝ์ฐ์ ๋์ ๋ฐฉ์์ ๊ตฌํ์์ ๊ท์ ํ๋ค.
์ด ํจ์๋ค์ด ์ถ์ธกํ๊ธฐ ์ด๋ ค์ด ์ด๋ฆ์ ๋ง๋ค์ด ๋ด๊ธฐ๋ ํ์ง๋ง ๊ทธ๋๋ ๊ฒฝ๋ก๋ช
์ด ๋ฐํ๋๋ ์์ ๊ณผ ํ๋ก๊ทธ๋จ์์ ๊ทธ ๊ฒฝ๋ก๋ช
์ ์ฌ๋ ์์ ์ฌ์ด์ ๋ค๋ฅธ ํ๋ก๊ทธ๋จ์ด open(2)์ผ๋ก๋ ์ฌ๋ณผ๋ฆญ ๋งํฌ ํํ๋ก ๊ทธ ๊ฒฝ๋ก๋ช
์ ๋ง๋ค์ด ๋ผ ์๋ ์๋ค. ๊ทธ๋ฆฌ๊ณ ๊ทธ๊ฒ ๋ณด์์์ ๊ตฌ๋ฉ์ผ๋ก ์ด์ด์ง ์ ์๋ค. ๊ทธ๋ฐ ๊ฐ๋ฅ์ฑ์ ํผํ๋ ค๋ฉด ๊ฒฝ๋ก๋ช
์ ์ด ๋ open(2)์ O_EXCL
ํ๋๊ทธ๋ฅผ ์ฌ์ฉํ๋ฉด ๋๋ค. ๋๋ ๋ ๋ฐ๋์งํ๊ฒ๋ mkstemp(3)๋ tmpfile(3)์ ์ฐ๋ฉด ๋๋ค.
์ค๋ ๋๋ฅผ ์ฌ์ฉํ๋ ์ด์ ๊ฐ๋ฅํ ์์ฉ์์๋ _POSIX_THREADS
๋ _POSIX_THREAD_SAFE_FUNCTIONS
๊ฐ ์ ์๋ผ ์๋ ๊ฒฝ์ฐ NULL ์ธ์๋ก tmpnam()
์ ํธ์ถํ ์ ์๋ค.
์ด ํจ์๋ค์ ์ ๋ ์ฐ์ง ๋ง๋ผ. ๋์ mkstemp(3)๋ tmpfile(3)์ ์ฌ์ฉํ๋ผ.
mkstemp(3), mktemp(3), tempnam(3), tmpfile(3)
2017-09-15