2011-10-19 127 views

回答

4

从C99§7.20.4.3/ 3:

接着,未写入缓冲数据的所有开放流FL ushed,所有 打开的流被关闭,以及由TMPFILE功能 是创建的所有网络连接LES除去。

POSIX(与C99对齐)拼出来更好:

的exit()函数应冲洗,然后用不成文的 缓冲数据的所有打开的流,并关闭所有打开的流。

+0

这是否意味着它关闭了用户可能打开的任何其他流?它是如何知道它们的? –

+3

@Paul它知道是因为'stdio'自己记账。 'fopen'不仅仅是把'FILE *'返回给你。 – cnicutar

5

它们被自动链接到程序的C运行时代码关闭 - 调用main()函数的代码也在main()返回后调用exit()。

相关问题