即使在程序终止后,变量仍然存在

时间:2012-07-27 13:42:58

标签: c++ persist

我希望即使在程序终止后也能保留一个变量。换句话说,即使应用程序退出main函数,我也希望变量保留在内存中。因此,如果我的应用程序再次启动,它可以直接从内存中访问该变量。这甚至可能吗?动态分配,例如array=new int[size],诀窍?

2 个答案:

答案 0 :(得分:3)

不,所有内存都由进程终止时的os回收。你必须将你想要的东西保存到文件中。

答案 1 :(得分:2)

免责声明: 将值存储到文件或使用某些框架功能(如QSettings)应优先于以下方法。

如果您确实希望您的变量保留在内存中,并且您可能有可能在重新启动时丢失值,请向操作系统询问共享内存

如果您有像Linux或Windows这样的POSIX兼容平台,请使用POSIX functions。引用手册:

  

POSIX共享内存对象具有内核持久性:共享内存对象将一直存在,直到系统关闭,或者直到所有进程都已取消映射该对象并且已使用shm_unlink删除它。

请注意,这会引入一种内存泄漏:您的变量会消耗掉 即使在应用程序终止后,内存仍然存在。