gpt4 book ai didi

c - 如何通过 C89 检查文件是否存在?

转载 作者:太空宇宙 更新时间:2023-11-04 00:40:03 27 4
gpt4 key购买 nike

我为我糟糕的英语道歉。

不同的文件可以有不同的权限。例如,我可以没有文件读/写权限,但该文件存在。如何通过 C89 检查此类文件是否存在?

谢谢。最好的问候

最佳答案

纯 ISO C89 中,没有检查文件是否存在的良好且可移植的方法。但是,有实现定义的解决方案或其他特定于操作系统的扩展。例如:

int file_exists(const char *name)
{
return access(name, F_OK) == 0;
}

请注意,此 (access()) 不是 C89 的一部分,但大多数我们关心的系统都有它。

或者有

int file_exists(const char *name)
{
FILE *f = fopen(name, "r");
if ((f == NULL) && (errno == ENOENT)) {
return 0;
}
fclose(f);
return 1;
}

这又不是 C89,但大多数符合 C89 的系统将提供 ENOENT

另一种选择是使用 stat() 函数,如果文件不存在,它也会返回 -1 并将 errno 设置为 ENOENT不存在。

关于c - 如何通过 C89 检查文件是否存在?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12659284/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com