我有一個正在創建的文件正在一個漫長的過程中。據我的理解,將該文件複製到另一個文件將會終止創建過程。有沒有解決這個問題?如何在創建中複製文件而不破壞它在Unix/Linux中
1
A
回答
6
不,從當前正在寫入的文件讀取不會中斷寫入過程。但是,您所做的副本將不完整,因爲您顯然無法複製尚未寫入的部分。只有第一個文件會獲得後續寫入,而不是副本,所以如果您想要整個文件,請等到寫入完成。
1
除非第二個進程使用與創建文件的進程相同的打開文件描述關聯的文件描述符,否則不會有問題。如果文件描述符確實共享相同的打開文件描述,則讀取過程將移動文件位置(如同寫入過程一樣),導致混淆。但是,這要求進程具有打開文件的共同祖先(例如,複製程序由創建者分出)。根據您的描述,我認爲情況不太可能如此。
您的複製過程可以按照tail -f
的方式進行,並讀取第一個EOF,然後在有更多數據可用時重複暫停和重新讀取,重複直到被告知停止,或者它可以確定文件已完成。如果它無法告訴文件何時完成,那麼你必須殺死它(中斷,或更糟)。
1
根據您的操作的語義應該是什麼,鏈接可能是您需要的。檢查符號鏈接和硬鏈接的行爲。其中一個可能正是你想要的。
相關問題
- 1. python Pycrypto我如何加密文件而不會破壞它們
- 2. 如何檢查文件對象的大小而不破壞它?
- 3. Android:我如何在TextView中創建不可破壞的塊?
- 4. 如何創建/填充ods文件中的工作表而不破壞文件中的其他工作表?
- 5. 在Android中,何時在SurfaceView中創建的線程被破壞?
- 6. 如何在Rebol中複製文件而不將它們加載到內存中?
- 7. 在Present()鉤子中繪製而不破壞現有內容
- 8. 如何替換而不在sed中創建中間文件?
- 9. Ruby:在編輯器中創建新行而不破壞程序行
- 10. 如何在CentOS中創建/複製文件夾中的文件事件?
- 11. 如何在螞蟻中複製文件,而不考慮它的位置
- 12. SurfaceView如何重新創建,如果它已被破壞
- 13. 如何插入Excel單元而不創建損壞的文件?
- 14. 如何使用urllib2下載gzip文件,而不會破壞它們?
- 15. OnDestroy不破壞在OnCreate中創建的對象
- 16. 如何使用「不復制」在Couch基礎中創建文檔?
- 17. 如何使用gulp在不同的文件中創建Typescript源代碼,而不是在JavaScript文件中創建?
- 18. Android:如何下載一個ftp文件而不被破壞?
- 19. VBA複製文件它它不存在
- 20. 如何讓留`delete_at`而不破壞
- 21. VSS:如何從「文件<foo>」中恢復已被破壞,無法重建。「?
- 22. 在java中反覆破壞二叉樹
- 23. Rails在破壞後創建新的
- 24. 如何修改文件拳頭256kb而不創建新文件並複製?
- 25. 破壞範圍在$破壞事件
- 26. 將xls文件從FileInputStream複製到FileWriter會破壞文件
- 27. 創建.master文件,而不在Sharepoint 2013中的Teamsite中創建.html文件
- 28. debuild創建鏈接而不是複製二進制文件
- 29. 如何在.h文件中破壞這個二維數組?
- 30. 破壞不破壞
是的。您不會通過讀取文件來中斷寫入過程。如果你能這樣做,那麼在每個編寫世界可讀文件的程序(例如,想到/ bin/passwd)中都會出現拒絕服務漏洞。 – MarkR 2010-09-20 13:04:49