我有一個跨越數十個文件的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