我有一个静态变量在我的几个函数,我如何保留这些静态变量的值,当一个意外的重新启动在程序中发生?
在标准C++中没有办法做到这一点。但是,有一种方法可以通过特定于操作系统的工具来实现,最常见的是,最好的工具是一个由永久存储支持的内存--一个内存映射文件。
我使用过的所有操作系统都支持内存映射文件,尽管具体的操作系统可能有所不同。
不幸的是,使用传统的文件来存储这样的变量是非常不方便的,因为您必须在每次更改值时显式地保存它,并且确保缓冲区被刷新--否则您无法保证在不恰当的退出后保留该值--这将对性能非常不利。