如果2個文件描述符被複制到相同的文件(即506
和STDOUT
),將調用close(506)
清理兩者關聯的對象,並且渲染STDOUT
不可用?還是內核實現文件的引用計數?Linux內核引用計數內核對象嗎?
5
A
回答
8
內核實現了引用計數,因此內核對象在所有指向它的文件句柄都關閉之前不會關閉。
3
引用計數器在內核中被廣泛使用以避免由於資源的併發分配和釋放引起的競爭條件。引用計數器只是與特定資源(如內存頁,模塊或文件)關聯的atomic_t計數器。當內核控制路徑開始使用資源時,計數器會自動增加,當內核控制路徑完成使用資源時,計數器會減少。當引用計數器變爲零時,資源沒有被使用,並且如果需要可以釋放它。
如果您想查看this以瞭解Linux內核引用計數實施的概述,那麼您可能會關注此事。
+0
非常有用的紙張。謝謝! – 2011-09-04 18:31:02
相關問題
- 1. Linux內核編程:「無法處理內核NULL指針引用」
- 2. 線程是內核對象嗎?
- 3. Linux內核sendpage函數
- 4. 讀取Linux內核參數
- 5. linux內核函數page_address()
- 6. Linux網絡內核
- 7. asm__volatile()在Linux內核
- 8. 配置Linux內核
- 9. setscheduler()在Linux內核
- 10. glib和linux內核
- 11. Linux內核調試
- 12. linux內核的config.h
- 13. Linux內核調度
- 14. 構建Linux內核
- 15. Linux內核調度
- 16. Linux內核編程
- 17. 如何確定內核對象文件編譯的Linux內核版本?
- 18. Linux內核可以加載並運行另一個Linux內核嗎?
- 19. 從內核調用內核
- 20. Linux內核函數和內核模塊開發
- 21. 內核模塊可以使用內核數據結構嗎?
- 22. linux內核的list.h線程安全嗎?
- 23. 什麼引發的linux內核模塊
- 24. Linux內核OOPS可以由用戶進程引起嗎?
- 25. Linux內核2.6中的計時
- 26. 剖析Linux內核使用的內存
- 27. 使用gcc與內核頭文件編譯Linux內核模塊
- 28. 用戶進程的內核堆棧| Linux內核
- 29. linux內核函數調用者
- 30. Linux內核:從內核空間調用用戶空間的回調函數
我相信你,我投票給你。你能爲後代提供一個文檔來源嗎?這似乎是可能再次訪問的問題的類型。 – 2010-02-26 21:10:05
@San Jacinto:'dup(2)'和'close(2)'的引用一起意味着引用計數;特別是*「如果fd是特定文件描述符的最後一個副本,則與其關聯的資源將被釋放」*:http://linux.die.net/man/2/dup http://linux.die.net/男人/ 2 /關閉 – 2010-02-26 22:39:22
真棒:)謝謝。 – 2010-02-26 23:23:31