在使用 fopen 函数打开文件时,如果该文件不存在或无法打开,则会返回 NULL,表示打开文件失败。如果您继续使用这个指向 NULL 的指针执行 fclose 函数,会导致程序崩溃。
因此,在使用 fopen 函数打开文件失败时,应该先检查返回值是否为 NULL,如果是,则不要执行 fclose 函数,而是应该根据具体情况进行错误处理,比如输出错误信息、退出程序等等。只有在确认 fopen 函数打开文件成功后,才能继续使用该文件指针并执行 fclose 函数来关闭文件。
以下是一些处理 fopen 失败的示例代码,供您参考:
#include <stdio.h>
#include <stdlib.h>
int main()
FILE *fp = fopen("test.txt", "r"); // 打开文件 test.txt
if (fp == NULL) {
printf("无法打开文件!\n"); // 如果打开失败,输出错误信息
exit(1); // 退出程序
// 如果打开成功,继续使用文件指针
// ...
fclose(fp); // 关闭文件
return 0;
需要注意的是,如果在打开文件时使用了不合法的文件名或路径,也会导致 fopen 函数失败,此时同样需要进行错误处理。