【发布时间】:2011-10-19 09:54:49
【问题描述】:
退出程序时,这些FILE*对象是如何关闭和释放的?
【问题讨论】:
标签: c
退出程序时,这些FILE*对象是如何关闭和释放的?
【问题讨论】:
标签: c
它们被自动链接到您的程序的 C 运行时代码关闭 - 调用 main() 函数的代码在 main() 返回后也会调用 exit()。
【讨论】:
来自 C99 §7.20.4.3/3:
接下来,所有带有未写入缓冲数据的打开流都被刷新,所有 打开的流被关闭,所有由 tmpfile 函数创建的文件 被删除。
POSIX(与 C99 对齐)更好地拼写:
exit() 函数随后将用未写入的方式刷新所有打开的流 缓冲数据并关闭所有打开的流。
【讨论】:
stdio 自己记账。 fopen 不仅仅是返回FILE *。