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

NAME

tmpnam, tmpnam_r - ์ž„์‹œ ํŒŒ์ผ ์ด๋ฆ„ ๋งŒ๋“ค๊ธฐ

SYNOPSIS

#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

DESCRIPTION

์ฃผ์˜: ์ด ํ•จ์ˆ˜๋“ค์„ ์“ฐ์ง€ ๋ง ๊ฒƒ. ๋Œ€์‹  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์„ ๋ฐ˜ํ™˜ํ•œ๋‹ค.

RETURN VALUE

์ด ํ•จ์ˆ˜๋“ค์€ ์œ ์ผํ•œ ์ž„์‹œ ํŒŒ์ผ๋ช…์— ๋Œ€ํ•œ ํฌ์ธํ„ฐ๋ฅผ ๋ฐ˜ํ™˜ํ•œ๋‹ค. ์œ ์ผํ•œ ์ด๋ฆ„์„ ์ƒ์„ฑํ•  ์ˆ˜ ์—†์œผ๋ฉด NULL์„ ๋ฐ˜ํ™˜ํ•œ๋‹ค.

ERRORS

์–ด๋–ค ์˜ค๋ฅ˜๋„ ์ •์˜๋˜์–ด ์žˆ์ง€ ์•Š๋‹ค.

ATTRIBUTES

์ด ์ ˆ์—์„œ ์‚ฌ์šฉํ•˜๋Š” ์šฉ์–ด๋“ค์— ๋Œ€ํ•œ ์„ค๋ช…์€ attributes(7)๋ฅผ ๋ณด๋ผ.

์ธํ„ฐํŽ˜์ด์Šค ์†์„ฑ ๊ฐ’
tmpnam() ์Šค๋ ˆ๋“œ ์•ˆ์ „์„ฑ MT-Unsafe race:tmpnam/!s
tmpnam_r() ์Šค๋ ˆ๋“œ ์•ˆ์ „์„ฑ MT-Safe

CONFORMING TO

tmpnam(): SVr4, 4.3BSD, C89, C99, POSIX.1-2001. POSIX.1-2008์—์„œ tmpnam()์„ ๊ตฌ์‹์œผ๋กœ ํ‘œ์‹œํ•˜์˜€๋‹ค.

tmpnam_r()์€ ๋น„ํ‘œ์ค€ ํ™•์žฅ์ด๋ฉฐ ๋ช‡๋ช‡ ๋‹ค๋ฅธ ์‹œ์Šคํ…œ์—์„œ๋„ ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•˜๋‹ค.

NOTES

tmpnam() ํ•จ์ˆ˜๋Š” TMP_MAX ๋ฒˆ๊นŒ์ง€๋Š” ํ˜ธ์ถœ ๋•Œ๋งˆ๋‹ค ๋‹ค๋ฅธ ๋ฌธ์ž์—ด์„ ๋งŒ๋“ค์–ด ๋‚ธ๋‹ค. TMP_MAX ๋ฒˆ ๋„˜๊ฒŒ ํ˜ธ์ถœํ•˜๋Š” ๊ฒฝ์šฐ์˜ ๋™์ž‘ ๋ฐฉ์‹์€ ๊ตฌํ˜„์—์„œ ๊ทœ์ •ํ•œ๋‹ค.

์ด ํ•จ์ˆ˜๋“ค์ด ์ถ”์ธกํ•˜๊ธฐ ์–ด๋ ค์šด ์ด๋ฆ„์„ ๋งŒ๋“ค์–ด ๋‚ด๊ธฐ๋Š” ํ•˜์ง€๋งŒ ๊ทธ๋ž˜๋„ ๊ฒฝ๋กœ๋ช…์ด ๋ฐ˜ํ™˜๋˜๋Š” ์‹œ์ ๊ณผ ํ”„๋กœ๊ทธ๋žจ์—์„œ ๊ทธ ๊ฒฝ๋กœ๋ช…์„ ์—ฌ๋Š” ์‹œ์  ์‚ฌ์ด์— ๋‹ค๋ฅธ ํ”„๋กœ๊ทธ๋žจ์ด open(2)์œผ๋กœ๋‚˜ ์‹ฌ๋ณผ๋ฆญ ๋งํฌ ํ˜•ํƒœ๋กœ ๊ทธ ๊ฒฝ๋กœ๋ช…์„ ๋งŒ๋“ค์–ด ๋‚ผ ์ˆ˜๋„ ์žˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ๊ทธ๊ฒŒ ๋ณด์•ˆ์ƒ์˜ ๊ตฌ๋ฉ์œผ๋กœ ์ด์–ด์งˆ ์ˆ˜ ์žˆ๋‹ค. ๊ทธ๋Ÿฐ ๊ฐ€๋Šฅ์„ฑ์„ ํ”ผํ•˜๋ ค๋ฉด ๊ฒฝ๋กœ๋ช…์„ ์—ด ๋•Œ open(2)์˜ O_EXCL ํ”Œ๋ž˜๊ทธ๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ๋œ๋‹ค. ๋˜๋Š” ๋” ๋ฐ”๋žŒ์งํ•˜๊ฒŒ๋Š” mkstemp(3)๋‚˜ tmpfile(3)์„ ์“ฐ๋ฉด ๋œ๋‹ค.

์Šค๋ ˆ๋“œ๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ์ด์‹ ๊ฐ€๋Šฅํ•œ ์‘์šฉ์—์„œ๋Š” _POSIX_THREADS๋‚˜ _POSIX_THREAD_SAFE_FUNCTIONS๊ฐ€ ์ •์˜๋ผ ์žˆ๋Š” ๊ฒฝ์šฐ NULL ์ธ์ž๋กœ tmpnam()์„ ํ˜ธ์ถœํ•  ์ˆ˜ ์—†๋‹ค.

BUGS

์ด ํ•จ์ˆ˜๋“ค์„ ์ ˆ๋Œ€ ์“ฐ์ง€ ๋งˆ๋ผ. ๋Œ€์‹  mkstemp(3)๋‚˜ tmpfile(3)์„ ์‚ฌ์šฉํ•˜๋ผ.

SEE ALSO

mkstemp(3), mktemp(3), tempnam(3), tmpfile(3)


2017-09-15

โš ๏ธ **GitHub.com Fallback** โš ๏ธ