可能重复:
What’s the best way to check if a file exists in C? (cross platform)C,检查文件是否存在而不能读/写可能?
我想检查文件是否存在。我将我的测试文件的权限更改为“chmod -r somefile”。但是现在它说文件即使存在也不存在。
因此,我假设如果我没有读取权限,我无法打开与“fopen r”文件。但是这意味着没有简单的方法可以判断文件是否存在或者无法读取/写入?
或者我错过了什么?任何帮助都会很棒。
谢谢!
int doesFileExist(const char* filename)
{
FILE* fptr = fopen(filename, "r");
if (fptr != NULL)
{
fclose(fptr);
printf("File exists\n");
return 1;
}
printf("File doesnt exist\n");
return 0;
}
更新:谢谢你们这些伟大的链接和解释!
呃..你有没有检查过'errno'?编辑:试试这个得到一些错误信息:'printf(“文件不存在:%s \ n”,strerror(errno));'不要忘记包含'errno.h'头文件。 – Jack
这就是我讨厌stdio API的原因,无论何时你需要做一些不平凡的事情如调整文件大小,或者移动文件而不复制它并删除旧文件,在可移植性方面你都会走运。 – Thomas