파일의 존재 여부를 알아 내는 함수가 있는지요.??

운형의 이미지

특정 디렉토리에 지정한 이름의 파일이 존재하는가 검사할 수 있는 함수가 있는지 알고 싶네요.(존재 한다면, 함수 이름도 ^^*)

막상 드는 생각이 파일 관련 함수 open이나 fstats등으로 열었을때 에러 나는 것을 확인하는 것으로 위의 기능할 수 있을거 같은데 이건 아무래도 꽁수 같아서... ㅡ.ㅡ

sangwoo의 이미지

운형 wrote:
특정 디렉토리에 지정한 이름의 파일이 존재하는가 검사할 수 있는 함수가 있는지 알고 싶네요.(존재 한다면, 함수 이름도 ^^*)

막상 드는 생각이 파일 관련 함수 open이나 fstats등으로 열었을때 에러 나는 것을 확인하는 것으로 위의 기능할 수 있을거 같은데 이건 아무래도 꽁수 같아서... ㅡ.ㅡ


man 2 stat 이 도움이 될겁니다 :)
error return && errno == ENOENT 이면 되겠네요.

추가합니다. 만일 파일이 존재하는 경우 open하는 루틴이라면, O_CREAT를 set 하지 않고 open해서.. 에러가 나면 errno를 확인하는게 더 간편할꺼 같네요. 꽁수는 아닌거 같습니다.. ^^;

----
Let's shut up and code.

운형의 이미지

(__)

Do you think that's the air you are breathing now?

divetou의 이미지

access 시스템 콜을 쓰면 될 껍니다.

man access

==============================
꿈꾸는소년

purewell의 이미지

저도 access 함수를 추천합니다.

POSIX 표준이고

Windows의 VC++시리즈,

Borland 등에서도 지원을 하니까요.

_____________________________
언제나 맑고픈 샘이가...
http://purewell.biz

운형의 이미지

(__)

Do you think that's the air you are breathing now?

sharefeel의 이미지

fopen으로도 할 수 있죠..^^;;

===============
Vas Rel Por

madkoala의 이미지

#ifdef _WIN32
#define F_CHECK_FLAG 00
#define F_CHECK(file) _access(file, F_CHECK_FLAG)
#define F_EXIST  -1
#endif

#ifdef LINUX
#define F_CHECK_FLAG F_OK
#define F_CHECK(file) access(file, F_CHECK_FLAG)
#define F_EXIST 0
#endif


result = F_CHECK("파일 이름");
result 확인