动机
如果我确定给定的输入文件存在,我想循环直到为该文件创建“文件流”不会失败。
问题
我知道通过以下检查我们可以判断在 C 中打开输入是否失败(因此,该文件存在于本地),
#include <stdio.h>
#include <stdlib.h>
int main()
{
FILE *rec_in_file = fopen("filename.txt", "r");
// If file cannot be opened, report error and exit
if (rec_in_file == NULL)
{
fprintf(stderr, "Could not open input file!");
exit(1);
}
return 0;
}
但是我如何判断文件是否存在但在创建“文件流”时出现问题?在对该问题的初步研究中,我无法提出处理此案的说法。
最佳答案
检查errno
或调用perror()
可用于在fopen()
失败后获取信息。问题是这些方法不需要产生任何与 I/O 错误相关的信息。实现通常会这样做,但不是必需的,而且信息各不相同。
一般来说,您需要使用标准 C 之外的函数,例如 access()
或 stat()
(大多数 Unix 库都支持), PathFileExists()
(Windows API),或主机系统提供的其他一些方法。
关于c - 如何判断在 C 中打开输入文件是否失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36489178/