gpt4 book ai didi

c++ - fclose 一个已经被 fclose 的文件

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:55:05 25 4
gpt4 key购买 nike

在我的程序中,我可能会关闭一个已经关闭的文件。当我对一个已经关闭的文件执行 fclose 时会发生什么?

如果不能这样做,如何知道文件是关闭还是打开?

最佳答案

使用同一流调用 fclose 两次是未定义的行为 - 很可能会崩溃。无法检查 FILE* 是否已经关闭,因此安全的解决方案是在关闭后立即将指针设置为 NULL:

fclose(fh);
fh = NULL;

来源:“关联文件关闭后,指向 FILE 对象的指针的值是不确定的”(C 草案标准)。 “在调用 fclose() 之后,对流的任何使用都会导致未定义的行为。” (单一 UNIX® 规范)。

关于c++ - fclose 一个已经被 fclose 的文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24555980/

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