본문 바로가기

개발 관련 기타/C++

C++) check whether file exists 파일 존재 여부 확인 [access(2)]

파일 존재 여부 확인 시 자주 사용하는 함수는 access 라는 함수 입니다.

 

 

함수의 정의

 

int access(const char* pathname, int mode)

 

mode에는 파일의 어떤 부분을 확인 할지 전달

  • F_OK (파일 존재 여부)
  • R_OK (파일 읽기 권한 여부)
  • W_OK (파일 쓰기 권한 여부)
  • X_OK (파일 실행 권한 여부)

 

함수의 반환 값

 

성공 시 zero 반환

실패 시 -1 반환 (errno is set)

 

set 되는 errno 리스트

  • EACCES (권한 부족)
  • ELOOP

사용 예제

 

확인 할 파일 경로 (const char *) : "/tmp/file" 

확인 할 파일 부분 (int) : F_OK 

#include <unistd.h>

const char* file_path = "/tmp/file";
int ret = access(file_path, F_OK);
if (ret == 0) {
	// 파일 존재 시
} else {
	// 파일 없을 시
}