当前位置: 首页 > 知识库问答 >
问题:

如何在程序重新启动的情况下保留静态变量的数据值?

袁恩
2023-03-14

我有一个静态变量在我的几个函数,我如何保留这些静态变量的值,当一个意外的重新启动在程序中发生?

共有1个答案

许正平
2023-03-14

在标准C++中没有办法做到这一点。但是,有一种方法可以通过特定于操作系统的工具来实现,最常见的是,最好的工具是一个由永久存储支持的内存--一个内存映射文件

我使用过的所有操作系统都支持内存映射文件,尽管具体的操作系统可能有所不同。

不幸的是,使用传统的文件来存储这样的变量是非常不方便的,因为您必须在每次更改值时显式地保存它,并且确保缓冲区被刷新--否则您无法保证在不恰当的退出后保留该值--这将对性能非常不利。

 类似资料:
  • 我有一个kubernetes集群,安装了保险库(通过头盔图表)。 我想将机密从vault填充到pod中的文件(例如nginx),并每5分钟刷新一次机密。 我使用以下配置对其进行了测试(使用适当的vault策略/后端身份验证): namespace.yaml Service_account.yaml nginx-deployment.yaml 当我将此配置应用于kubernetes集群时,将创建部署

  • 我读了几个类似的问题,这似乎是我能做的最好的。是否可以在dist上启用实时重新加载而无需完全重新启动应用程序? 顺便说一下,我的IDE是IntelliJ。我开始怀疑IntelliJ是否需要排除dist目录。如果是这样的话我会跟进的。

  • 本文向大家介绍mysql不重启的情况下修改参数变量,包括了mysql不重启的情况下修改参数变量的使用技巧和注意事项,需要的朋友参考一下 通常来说,更新mysql配置my.cnf需要重启mysql才能生效,但是有些时候mysql在线上,不一定允许你重启,这时候应该怎么办呢? 看一个例子: mysql> show variables like 'log_slave_updates'; +-------

  • 当我在一个节点上做了一个紧凑的工作时,它会抛出以下例外情况:

  • 问题内容: 我的速度宏正在缓存中,我不希望它们存在……至少不在开发过程中。 我在属性文件中设置了以下属性… …但这似乎并没有解决问题 使用速度属性,如何配置速度以不缓存宏? (我正在使用速度1.6.4) 编辑: 我不认为这条线… …与速度有关 问题答案: 我一直在NVelocity(速度的C#端口)遇到相同的问题。深入研究它们的来源,我发现全局名称空间中宏的重新加载由以下属性控制。 我没有用速度进

  • 问题内容: 我正在为我的应用程序使用“ Spring-boot + Hibernate4 + mysql”。作为其中一部分,我要求即使数据库关闭,我的sprint- boot应用程序也应能够启动。目前,当我尝试在不启动数据库的情况下启动我的spring boot应用程序时,它给出了以下异常。 我进行了很多研究,发现此例外与财产有关。 我尝试在Spring Boot的“ application.ym