我正在编写一个程序来更改文件。我想要的语义是旧版本应保留在文件系统上,直到写入新版本。也就是说,从旧版本到新版本之间的转换应该是原子性的。在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:帮助就地编辑表格