回答
臨時文件的典型技巧是打開/創建文件,然後在不關閉文件描述符的情況下取消鏈接。
您最終得到一個文件描述符給一個不再存在的文件。您仍然可以讀取並寫入它,但只要您關閉文件描述符(或被終止),該文件將被移除並釋放它佔用的空間。
當然,如果您決定繼續保留文件,那並不會真正起作用。
不能使用'link(「/ proc/self/fd/n」,「permanent-name」);'如果有人想保留這個文件? –
@ BenVoigt通常,該鏈接會(非法)跨越文件系統邊界。這是一個特例嗎? –
@Jonas:經過進一步的研究,顯然不是。 'proc /./fd'是特殊情況,它們是在目標被刪除時不會中斷的符號鏈接。但'鏈接'不夠聰明重新鏈接目標。也許還有一些其他功能是? –
- 1. 內核是否在進程死亡時刪除打開的文件
- 2. WCF tcp連接在進程死亡時保持打開狀態
- 3. perl:當主進程死亡時線程不會死亡
- 4. 進程死亡 - 刪除輸出文件?
- 5. Yaws進程死亡
- 6. Hadoop:Datanode進程死亡
- 7. C#進程死亡
- 8. 在python線程死亡時?
- 9. 獲取node.js進程死亡?
- 10. 進程已經死亡
- 11. 進程死亡本身
- 12. Java進程如何死亡?
- 13. Apache/WSGI進程死亡
- 14. 當python進程死亡時運行atexit()
- 15. Nohup java進程超時或死亡
- 16. node.js進程何時意外死亡?
- 17. 創建進程死亡時,文件是否從tmpfs中消失?
- 18. 當進程意外死亡時,會否解鎖羣集文件?
- 19. mercurial在打開/保存文件時會減慢emacs的死亡率
- 20. Perl IPC ::在父母死亡時運行,殺死進程
- 21. 當應用程序死亡時殺死外部進程
- 22. Selenium Webdriver打開Firefox,然後死亡
- 23. 如何啓動其他父進程時死亡的進程?
- 24. 父母死亡時設置子進程的監護人進程
- 25. 批處理文件進程在Java中死亡:xcopy不關閉
- 26. 確保子進程在Cocoa中死亡
- 27. Node.js進程在aws實例上死亡
- 28. Visual Studio在打開解決方案時死亡
- 29. 當zygote死亡時,android如何殺死app進程?
- 30. android遠程進程(receiver)快速死亡
丟棄的意思是從文件系統中刪除(刪除)? – Harald
可能不可能在流程本身內。寫入文件時是否有正確的名稱是重要的。如果沒有,你可以用一個臨時名稱來寫。如果該過程繼續存在直到close(),那麼重命名該文件。如果進程被終止,你如何擺脫臨時文件就是你想要做到這一點的緊急問題:定期清理cron,父進程注意到子進程已經死了,並在其後清理。 – Harald