운영체제에 관계없이 C로 파일이 있는지 없는지 확인하는 방법


발생하는 문제 및 실행환경

파일이 있는지 없는지 알아내려면 꼭 이렇게 써야 하나요? 더 짧은 방법이 있으면 가르쳐주세요. 파일이 많아지니까 여러 개 체크하는 거 너무 비효율적이에요

소스코드

int exists(const char *fname)
{
    FILE *file;
    if (file = fopen(fname, "r"))
    {
        fclose(file);
        return 1;
    }
    return 0;
}
  • 2016년 01월 29일에 작성됨

조회수 120


1 답변


좋아요
0
싫어요
채택취소하기

unistd.h의 access()함수를 쓰면 코드 길이를 줄일 수 있습니다

if( access( fname, F_OK ) != -1 ) {
    // 파일이 있을 때
} else {
    // 파일이 없을 때
}

파일이 있는지 없는지가 아니라 읽기/쓰기/실행이 가능한지 확인할 때는 F_OK자리에 R_OK/W_OK/X_OK를 써주세요. R_OK | W_OK같이 or를 써서 여러 개를 한꺼번에 넣을 수도 있습니다

  • 2016년 01월 29일에 작성됨

로그인이 필요한 기능입니다.

Hashcode는 개발자들을 위한 무료 QnA사이트 입니다. 작성한 답변에 다른 개발자들이 댓글을 작성하거나 좋아요/싫어요를 할 수 있기 때문에 계정을 필요로 합니다.
► 로그인
► 계정만들기
Close