0

C でファイル ポインタが NULL を返した場合、ファイルが存在しないか、アクセス権が存在しないかを確認するにはどうすればよいですか? Linuxでコードを書いています。ファイルにはアクセス権がありませんが、ファイルは存在するため、ファイルが存在しない、またはファイルにアクセス権がないという別のステータスを返すにはどうすればよいですか。

4

1 に答える 1

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");
    }
}
于 2012-04-06T11:18:30.493 に答える