在我的程序中,我正在编写我的程序状态的文件。我在程序运行期间多次将文件写入文件,因为程序更改了一些我需要非常频繁地存储的变量。
现在,如果,由于某些原因,我的电源失效了。大多数时候,我会丢失该文件中的数据。
请告诉我即使断电也能保护数据的机制。(我已经在windows上写过C++程序)。
谢谢
发布于 2010-04-16 19:24:30
使用事务性数据库,如SQL Server。定期将您的更改提交到数据库。当数据库服务器断电时,您的数据不太可能被损坏,但为了以防万一,最好定期进行备份。
发布于 2010-04-16 19:25:07
尽可能频繁地Flush文件,或获取UPS ;)
发布于 2010-04-16 23:05:05
按照建议,您可以使用事务性数据库来跟踪状态。如果出于各种原因,您希望继续使用普通文件:
我建议使用一个基于事务的数据文件,它总是被附加到后面,而不是一个你经常重写的文件。换句话说,当您第一次创建文件时,将完整的数据集作为开始状态写入。然后,对于程序写入的每个更改,保留现有文件并仅附加更改(例如,记录变量B更改为42),而不是重写整个文件。当文件达到一定大小时,您将关闭它,使用当前已满状态启动一个新文件,然后重复上述操作。
恢复会稍微复杂一些,因为你必须恢复整个状态文件,但是你不应该丢失太多的数据(经常刷新)。
https://stackoverflow.com/questions/2652436
复制相似问题