open() : 파일이 존재하지 않으면 에러가 뜨게하려면 어떻게 해야 하나요.-_-;

준군Or송의 이미지

검색하다하다 못 찾겠어서 글을 올립니다.

open으로 파일을 열 때, 그 파일이 존재하지 않으면 에러가 나게 하려고 하는데..

open( FileName, O_WRONLY | O_APPEND )

여기다가 어떤 flag를 추가해야 할까요...저대로는 절대 에러가 나지 않더군요 (흑)

kasi의 이미지

if ( -1 == open(...) )
    err_msg("에러났어요");

이런 식으로 해주면 됩니다.
man open하면 나오니 한번 보세요~

kewlbear의 이미지

읽기 모드로 오픈하셔야 없을 때 에러 코드를 반환합니다.

ssehoony의 이미지

fstat() 같은 함수를 활용하는 것도 좋을 듯 하네요.

kpserv의 이미지


int main(int argc, char **argv)
{
****if (access(argv[1], F_OK) != 0)
********perror("파일이 존재하지 않음 : ");
****else
********printf("파일 존재함\n");

// 이후 부터는 오픈 함수를 사용
****int openFd;
****openFd = open( ... );

...
}

#define DEBUG printf( "%s, %s, %d\n", __FILE__, __FUNCTION__, __LINE__ );