我在Linux中使用这段C代码来检查文件是否与“.c”文件存在于同一目录中:
int file_exist(char *filename)
{
FILE *fp = fopen(filename, "r");
if (fp) {
return 1;
} else {
return 0;
}
}
但即使文件存在,它也总是返回false! Linux正在另一个目录中搜索的问题是什么?怎么解决这个问题?
答案 0 :(得分:2)
只需使用stat - http://linux.die.net/man/2/stat
即可如果返回0则文件存在。你甚至可以知道你是否可以阅读它。
答案 1 :(得分:-1)
使用ferror方法测试输入文件是否正常。
FILE *fp;
fp = fopen("RECORD.txt","r");
if (ferror(fp) != 0){
printf("File has error");
exit(0);
}