我有一个跨越数十个文件的C程序。我的目标是编写一个函数,当被调用时将所有全局变量保存到某个文件并退出到操作系统(Windows中的命令行)。后来,我需要程序从文件中加载全局变量并继续运行。类似休眠功能的C程序
该程序是一个单线程的exe文件,不加载任何dll。
解决此问题的直接方法是列出所有全局变量(假设我将静态转换为全局变量)并将它们转储到文件中。但这是一项单调乏味的工作,因为可能有成百上千的变量。
是否有其他解决方法,比如倾销整个数据段并稍后加载?即使我保存了数据段并将其加载回RAM,我也无法将程序变量与数据段的内存块相关联。
你的程序有几千个全局变量?!如果你对设计真的很耐心,那么可以看看Emacs用'unexec'做了什么。 – chrisaycock 2011-12-19 20:46:50
在Unix上,一种方法是'mmap'某个文件并在mmapped文件中分配所需的状态。 – 2011-12-19 20:55:49
@AlexandreC .: Windows有没有类似的东西? – 2011-12-19 20:59:45