我正在編寫一個程序來更改文件。我想要的語義是舊版本應保留在文件系統上,直到寫入新版本。也就是說,從舊版本到新版本之間的轉換應該是原子性的。在Linux或最好是任何POSIX系統上執行此操作的正確方法是什麼?就地編輯文件
Q
就地編輯文件
0
A
回答
3
執行atomicaly的規範方法是創建一個臨時文件,當您完成後,將其移動以覆蓋原始文件。然後你進入一個完整的其他領域的問題。看看這個Is rename() without fsync() safe?
0
以不同的名稱寫新文件,然後致電rename
。
0
我寫一個程序到位
已經存在的程序是patch
更改的文件。
運行diff -[option] old-file new-file >> name.patch
例如diff -Naur old-file new-file >> name.patch
...並使用patch命令編輯文件,如patch -p0 < name.patch
相關問題
- 1. 編輯就地Swing組件
- 2. 使用cstdio就地編輯文件?
- 3. 就地編輯jquery
- 4. 就地編輯UITableViewCell中的文本?
- 5. 用Perl就地編輯YAML文檔
- 6. jQuery的編輯就地
- 7. Rails 3就地編輯
- 8. 就地編輯問題
- 9. 就地編輯困難
- 10. jQuery - CKeditor的就地編輯
- 11. CView就地編輯控件佈局
- 12. 使用Perl的鑽石和就地編輯運算符就地編輯目錄中的多個文件
- 13. 另一個就地編輯器 - 一個jQuery編輯插件
- 14. 需要perl就地編輯不在命令行上的文件
- 15. 讀取整個文件,然後在就地編輯時打印?
- 16. Bootstrap 3的就地文本編輯組件
- 17. Rails:就地編輯是一件事情,但就地創建是什麼?
- 18. Perl的就地編輯弄亂文本編碼
- 19. 使用Asp.net進行就地編輯ajax
- 20. 保存就地jQuery的編輯
- 21. 使用GwtQuery進行就地編輯
- 22. 就地編輯Rails,jQuery和best_in_place gem
- 23. 如何通過就地編輯
- 24. 在ASP.NET webforms中編輯就地功能
- 25. 就地的UITableView細胞的編輯
- 26. 如何用CListCtrl就地編輯列?
- 27. 就地編輯用的sed在OS X
- 28. 在Rails 3中進行就地編輯
- 29. 用於就地編輯的CSS
- 30. Angular:幫助就地編輯表格