2011-10-19 277 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()。

相關問題