使用cstdio
,覆盖文件的最安全方法是什么?在这种情况下,“安全”意味着文件不可能变得不完整或损坏;该文件将被完全覆盖,或者如果出现问题,它将是旧文件。
我想最好的方法是创建一个临时中间文件,然后在中间完成后覆盖旧文件。如果这实际上是最好的方法,那么尽管很少见,但似乎还有一些其他问题是可能的。
- 如果程序在覆盖时退出,我怎么知道使用这个其他文件?
- 如果程序在创建过程中退出,我怎么知道不使用其他文件?
- 我怎么知道原始文件或中间文件处于未定义状态(因为它可能以一种仍然可读的方式失败,但它包含的数据有细微的错误)?
我想这有一个好的做法,但我一直找不到。这是用于保存的游戏数据;只有一个文件,并且每次都会覆盖整个文件,无需担心部分覆盖或附加。