使变量即使在程序终止后仍然存在
Making variables persist even after program termination
我希望有一个变量即使在程序终止后也能持久存在。换句话说,我希望一个变量即使在应用程序退出主函数之后也能保留在内存中。因此,如果我的应用程序再次启动,它可以直接从内存中访问该变量。这可能吗?动态分配,例如array=new int[size]
,会起作用吗?
否,所有内存都由操作系统在进程终止时回收。你必须将你想要的东西保存到一个文件中。
这是不可能的。您必须将数据存储在文件或系统首选项中,以便在下次启动时访问它
免责声明: 将值存储到文件或使用一些框架功能(如QSettings)应优先于以下方法
如果您确实希望变量保留在内存中,并且在重新启动时可能会有丢失值的风险,请向操作系统请求共享内存。
如果您有一个像Linux或Windows这样的POSIX兼容平台,那么就使用POSIX函数。引用手册:
POSIX共享内存对象具有内核持久性:共享内存对象将一直存在,直到系统关闭,或者直到所有进程都取消了对象的映射,并用
shm_unlink
删除了对象。
请注意,这会引入一种内存泄漏:您的变量将消耗即使在应用程序终止之后,也可以使用内存。
相关文章:
- CMake 生成的程序无法在 Windows 上链接:尝试链接到不存在的文件
- 我正在调试这个C++程序.编译器不再显示语法错误,但存在隐藏的逻辑错误
- 如果操作系统未清除内存泄漏,则在程序完成后内存泄漏是否仍然存在?
- 如何将我的控制台应用程序链接到使用 clang++ 作为编译器的 OSX 环境中的 /usr/local/lib 中存在
- 是否有可能存在不会崩溃程序的内存问题
- 在不存在的记录上调用 remove 会使程序崩溃
- 阵列不能两次将相同的名称保存,当要添加新字符串时,程序应检查以查看该名称是否已经存在
- 如何使用QT检查程序是否存在于路径中
- 该程序(包括原始程序)产生的同时存在的过程的最大数量是多少
- C++ - 程序在尝试在 TCP 客户端上连接到不存在的地址时表现出奇怪的行为
- 错误消息:无法打开"KHR/khrplatform.h",但程序中不存在"khrplatform"
- 我怎么知道使用caffe framwork和c ++程序的层中是否存在偏差
- 尽管使用不存在的成员,但程序编译
- 可以归类为病毒的程序可能存在安全缺陷
- 如何设计初始化后不变的类,并且在我的整个程序中仅存在一次
- C :如何在iOS中已经存在的MFC应用程序中的加密SQLITE数据库重复使用
- glLinkProgram() 在程序执行中未定义,即使 glew 报告它存在
- 我找不到程序中的歧义,但编译器说 check(int) 和 check(float) 之间存在歧义
- 如果在另一个库和链接到此库的应用程序中都使用了仅标头的库,是否存在任何问题
- 如何自定义已存在程序实例的右键单击