2012-04-06 4 views
0

CでファイルポインタがNULLを返す場合、ファイルが存在しないか、アクセス権が存在しないかどうかを調べるにはどうすればよいですか?私はLinuxにコードを書いています。ファイルにはアクセス権がありませんが、ファイルが存在するので、ファイルが存在しないかファイルにアクセスできない状態を返すにはどうすればよいですか?CでファイルポインタがNULLを返す場合、ファイルが存在しないか、アクセス権が存在しないかを調べるにはどうすればよいですか?

答えて

1

ファイルを開くしようとした後errnoの値を確認します。

if (NULL == (fp = fopen("myfile.txt", "r"))) 
{ 
    if (ENOENT != errno) 
    { 
     fprintf(stderr, "Failed to open file: %s\n", strerror(errno)); 
    } 
    else 
    { 
     fprintf(stderr, "file does not exist\n"); 
    } 
} 
+0

問題のファイルのパスが含まれていないエラーメッセージが私の好きなものの一つです:もし(FP == NULL) perror(path); –

関連する問題