gcc (GCC) 4.7.2
c89
是否可以检查文件是否已关闭?检查用fopen打开的文件是否已关闭
我用fopen()
打开了一个文件,用fclose(fd)
关闭了。
在程序运行过程中,该文件被打开和关闭。但是,用户可以通过执行ctrl-c
来终止程序。
当我进入我的清理程序时,我不知道文件是处于打开还是关闭状态。所以如果我尝试做两次fclose(fd)
,它会堆积转储。
一些想法,我已经扔周围:
- 的状态加入到被打开或关闭的文件,然后检查状态,意味着对于这样一个简单的工作更多的工作。
- 不要做任何事情,因为操作系统将在程序结束时自动清理。
- 是否有访问功能,但只是检查模式。
提前许多感谢,
添加状态(第一个选项)会添加竞争条件,除非在状态与文件同步时屏蔽Ctrl + C信号。 – Inspired
为什么不能在关闭后将'fd' _(奇怪名称,btw)_设置为'NULL'? – VoidPointer
它与libc(通常是Glibc,但可能是[musl-libc](http://musl-libc.org/)等)相关的更多于编译器。 –