我想實施的行爲在我的C程序,這樣,如果一個SIGINT發生,我關閉所有打開的文件描述符。有一個簡單的方法來獲得它們的列表嗎?Ç得到所有打開的文件描述符
5
A
回答
5
3
所有打開的文件描述符的跟蹤和單獨關閉它們。
在一般情況下,你使用可能有一個打開的文件,並在關閉該庫將導致庫胡作非爲。
實際上,您自己的代碼中可能存在同樣的問題,因爲如果您不加區分地關閉文件描述符,但程序的另一部分仍然記住文件描述符並嘗試使用它,則會出現意外錯誤或(if其他文件已打開)對錯誤文件進行操作。負責打開文件的組件也負責關閉文件。
2
1
我的POSIX系統解決方案:
所有打開的fd是可能的最低值。
根據open(2)
製作包裝功能。
您的新函數打開(並返回)所請求的fd並將其值傳遞給define_if_is_the_higtest_fd_and_store_it()
函數。
您應該有一個int hightest_fd_saved
僅適用於名爲save_fd()
(初始值爲3(cuz stderr
是2))的單例函數(只有1個「描述符表」)。
將SIGINT
配置爲您的信號功能。在裏面,你從[3,return_fd()
]做一個循環。
我想就是這樣......
相關問題
- 1. 沒有得到輸出的printf文件描述符ç
- 2. 文件描述符和打開文件
- 3. lsof的文件描述符被打開
- 4. 在C中打開文件描述符
- 5. 文件描述符,打開()返回零
- 6. JAVA:查找並關閉從文件名打開的所有文件描述符
- 7. 打開()不打開for循環中的文件描述符
- 8. 如何訪問打開文件的文件描述符
- 9. 無法打開文件,文件描述符返回-1值
- 10. 用文件描述符打開讀文件
- 11. Hadoop中打開的文件描述符的預期消耗0.21.0
- 12. Linux實現打開的文件描述符C
- 13. 成功打開後的不良文件描述符
- 14. Storm和Kafka:增加打開文件描述符的數量
- 15. 獲取OS X中打開文件(描述符)的列表
- 16. 爲什麼打開我的文件描述符0?
- 17. 如何獲取打開文件描述符的數量?
- 18. 在子進程中關閉已打開的文件描述符
- 19. 如何監視Ruby on Rails中的打開文件描述符?
- 20. 查找進程linux(C代碼)的打開文件描述符?
- 21. 爲什麼stdio.h會打印寫入用文件描述符打開的文件?
- 22. 文件描述符飢餓和阻斷文件描述符
- 23. 檢查IniFile描述符是否打開
- 24. cleartool描述-ahlink - 所有文件名
- 25. bash:使用sudo權限打開文件描述符
- 26. 打開並獲取系統文件描述符
- 27. 程序卡住了,管道文件描述符何時打開?
- 28. 如何重新打開文件描述符0,1和2?
- 29. GridGain 6.2.0/6.2.1:打開太多文件描述符
- 30. 如何打開/使用文件描述符
搜索信號處理程序。 –
你爲什麼要這樣的事情? – qdot
當你從main退出();或返回時,內核應該爲你關閉這些文件描述符。 – yeyo