检查当前目录中是否存在文件

时间:2014-02-16 02:31:03

标签: c linux file-io

我在Linux中使用这段C代码来检查文件是否与“.c”文件存在于同一目录中:

int file_exist(char *filename)
{
    FILE *fp = fopen(filename, "r");
    if (fp) {
        return 1;
    } else {
        return 0;
    }
}

但即使文件存在,它也总是返回false! Linux正在另一个目录中搜索的问题是什么?怎么解决这个问题?

2 个答案:

答案 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);
 }