stdin,stdout,stderr如何关闭?

时间:2011-10-19 09:54:49

标签: c

退出程序时,这些FILE*对象如何关闭和释放?

2 个答案:

答案 0 :(得分:5)

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

答案 1 :(得分:4)

来自C99§7.20.4.3/ 3:

  

接下来,所有带有未写入缓冲数据的开放流都会被删除,全部   开放流已关闭,以及由tmpfile函数创建的所有文件   被删除。

POSIX(与C99一致)更好地说明了这一点:

  

exit()函数然后应该用未写入的方式刷新所有打开的流   缓冲数据并关闭所有打开的流。