C语言 判断文件是否存在

1、使用 access() 函数(推荐方法)

在 POSIX 系统(如 Linux、MacOS)中,access() 函数是检查文件存在与否的标准方法。它检查文件的可访问性,包括读取、写入或执行权限。要检查文件是否存在,只需要检查 access() 返回值。

#include

#include // access()

#include

#include

int main() {

const char *filename = "example.txt";

// 检查文件是否存在

if (access(filename, F_OK) != -1) {

printf("File exists!\n");

} else {

printf("File does not exist!\n");

}

return 0;

}

2、使用 fopen() 函数

使用 fopen() 函数尝试打开文件并检查返回值。虽然 fopen() 更多用于文件的读写操作,但它也可以用于检查文件是否存在。

#include

int main() {

const char *filename = "example.txt";

FILE *file = fopen(filename, "r");

if (file) {

printf("File exists!\n");

fclose(file); // 文件打开成功后,记得关闭文件

} else {

printf("File does not exist!\n");

}

return 0;

}

3、使用 stat() 函数在 POSIX 系统中,stat() 函数也可以用来检查文件是否存在。它获取文件的状态信息,如果文件存在,stat() 返回 0,否则返回 -1。

#include

#include

int main() {

const char *filename = "example.txt";

struct stat buffer;

if (stat(filename, &buffer) == 0) {

printf("File exists!\n");

} else {

printf("File does not exist!\n");

}

return 0;

}

4、使用 open() 函数(Linux/Unix)

在低级别的文件操作中,可以使用 open() 函数来检查文件是否存在。这个方法适用于文件的打开和访问。

#include

#include

int main() {

const char *filename = "example.txt";

int file = open(filename, O_RDONLY);

if (file != -1) {

printf("File exists!\n");

close(file); // 文件打开成功后,记得关闭文件

} else {

printf("File does not exist!\n");

}

return 0;

}