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

Making variables persist even after program termination

本文关键字:存在 程序 变量 终止      更新时间:2023-10-16

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

否,所有内存都由操作系统在进程终止时回收。你必须将你想要的东西保存到一个文件中。

这是不可能的。您必须将数据存储在文件或系统首选项中,以便在下次启动时访问它

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

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

如果您有一个像Linux或Windows这样的POSIX兼容平台,那么就使用POSIX函数。引用手册:

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

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

相关文章: