Zee*_*ood 3 c linux fopen file
我正在尝试使用fopen
api 检查文件的存在.我希望if fopen
返回NULL然后意味着文件不存在.我提供file_name
输入命令行参数.
我的代码看起来像这样:
FILE *file = NULL;
file = fopen(file_name, "rb");
if(file == NULL)
{
/* file is not found */
}
else
{
/* file is found */
}
Run Code Online (Sandbox Code Playgroud)
如果我提供.或/ file_name
然后它接受它作为有效的文件名并假装它检测到文件.fopen
在Linux上不应该在这种情况下返回NULL ?
我在Windows上尝试了同样的事情,它正如我期望的那样工作(fopen
返回NULL).
背景:
用户将提供路径和文件名(xml文件)作为应用程序的输入选项,然后通过检查指定路径上是否存在(xml)文件来验证此选项.
用户可以将任何字符串作为路径,因此fopen
除非用户输入,否则足以检测它.或者/ - 这些当然不是必需的(xml)文件 - 因此我希望fopen
将其检测为错误,我们将向用户报告"找不到文件".但是,fopen
接受它们作为有效文件,当我们尝试处理它时,还有其他一系列错误.