gcc (GCC) 4.7.2
c89
有没有办法检查文件是否已经关闭?
我使用fopen()
打开了一个文件,并使用fclose(fd)
关闭了它。
在程序运行期间,此文件会被打开和关闭。然而,用户可以通过执行ctrl-c
来终止程序。
当我进入清理程序时,我不知道文件是处于打开状态还是关闭状态。因此,如果我尝试两次使用fclose(fd)
,它将导致堆栈转储。
我一直在思考一些想法:
- 为文件添加打开或关闭状态,然后检查该状态,这意味着为一个简单的工作需要更多的工作。
- 什么也不做,因为操作系统会在程序结束时自动清理。
- 是否有访问函数,但那只能检查模式。
非常感谢您的帮助!
fd
(奇怪的名称)设置为NULL
? - VoidPointerOPEN
和CLOSE
的状态变量定义为#define
。每当您在代码中调用fopen
时,将状态设置为Current_State = OPEN;
,并且当您在代码中调用fclose
时,将状态设置为Current_State = CLOSE;
,并在需要时使用该current_state
变量。 - user2045557