退出程序時,這些FILE*
對象如何關閉並釋放?stdin,stdout,stderr如何關閉?
0
A
回答
4
從C99§7.20.4.3/ 3:
接着,未寫入緩衝數據的所有開放流FL ushed,所有 打開的流被關閉,以及由TMPFILE功能 是創建的所有網絡連接LES除去。
POSIX(與C99對齊)拼出來更好:
的exit()函數應沖洗,然後用不成文的 緩衝數據的所有打開的流,並關閉所有打開的流。
5
它們被自動鏈接到程序的C運行時代碼關閉 - 調用main()函數的代碼也在main()返回後調用exit()。
相關問題
- 1. LLVM stdin/stdout/stderr
- 2. 關於STDIN STDOUT STDERR的問題
- 3. 在linux中如何實現stdin,stdout,stderr?
- 4. 的Perl:讓open3繼承STDIN,STDOUT,STDERR
- 5. stdin,stdout和stderr在?之間共享?
- 6. 只允許應用stdin,stdout和stderr
- 7. 使用unix socket進行subprocess stdin,stdout,stderr
- 8. 是stdin,stdout和stderr文件嗎?
- 9. 如何在python中關閉stdout/stderr窗口?
- 10. 將stdin和stdout重定向到stdin首先關閉的位置
- 11. 如何控制popen stdin,stdout,stderr重定向?
- 12. 如何正確啓動進程並轉發stdin/stdout/stderr?
- 13. 如何在不等待stderr/stdout關閉的情況下使用Python調用命令,捕獲stderr和stdout?
- 14. 如何將stderr管入stdin?
- 15. 如何測試stdin和stdout?
- 16. tomcat logging stdout stderr
- 17. 關閉stdout和stderr(1>& - 2>& - )修改退出狀態?
- 18. 每個進程都有自己的stdin,stdout和stderr嗎?
- 19. 流浪漢up失敗,stdin,start,ssh,stderr和stdout錯誤
- 20. 爲什麼要將stdin,stdout和stderr轉換爲單個fd?
- 21. Powershell - 輸入stdin之後輸入stdout/stderr不再有效
- 22. perl使用open3寫入STDIN並捕獲STDOUT和STDERR
- 23. stdin,stdout,stderr在Lua中是緩衝還是非緩衝?
- 24. Stdin和Stdout
- 25. Python Threading stdin/stdout
- 26. 如何在沒有`disown`或gdb的情況下關閉進程的stdout和stderr?
- 27. 如何將stdout/stderr傳遞給Turtle中另一個命令的stdin?
- 28. Scons日誌stdout/stderr
- 29. Apache Spark Stderr和Stdout
- 30. stderr和stdout的ssh?
這是否意味着它關閉了用戶可能打開的任何其他流?它是如何知道它們的? –
@Paul它知道是因爲'stdio'自己記賬。 'fopen'不僅僅是把'FILE *'返回給你。 – cnicutar