[unix] 시스템 프로그래밍에서 tmpnam()함수에 대해서 공부하고?

winasinavy의 이미지

tmpnam(NULL) 로 임시파일을 생성하는경우에 시스템에서 유일한 이름을
가지는 파일을 생성하는걸로 아는데요

예를 들어

int fd;
fd=open( tmpnam(NULL),O_RDWR|O_CREAR,0644)

이경우에 이미 존재하는 파일을 open 하게 되어 덮어 쓰게 되는경우가 있다고하는데요 .. 어떤 경우에 이미 존재하는 파일을 open하게 되나요?

cdpark의 이미지

tmpnam() 함수와 open() 함수의 시차가 문제가 될 듯 싶네요.

man page에도 tmpfile() 함수를 사용하라고 권고하고 있고요.