gpt4 book ai didi

从程序内部复制 C 程序的整个 bss 和数据段?

转载 作者:太空宇宙 更新时间:2023-11-04 07:54:29 24 4
gpt4 key购买 nike

我正在尝试为特定的 HPC 应用程序构建一个检查点重启库。要执行检查点,我需要能够复制每个处理元素的全局变量和静态变量。我希望能够通过简单地获取存储所有这些变量(已初始化和未初始化)的连续内存块并将其写入其他地方来做到这一点。

我用 Google 彻底搜索了一下,但没有找到任何结果。如果有任何帮助,我将不胜感激。我们也非常欢迎任何有关解决此问题的更好方法的建议。

最佳答案

根据您的编译器,这些可能在您的堆中或二进制文件的数据部分。我对 C 标准不够熟悉,无法确切知道规范保证了分配过程的哪些方面,但尝试转储这些内存部分并稍后从中恢复听起来像是一种有很多隐藏陷阱的方法。更不用说获取未初始化内存的潜在浪费时间了。

我会建议您显式转储您需要的内容到 JSON 等串行格式,并在重新启动时从这些二进制文件中恢复。设置和维护这个保存和恢复过程需要更多的努力,但我认为从长远来看,它比转储整个堆和数据部分更安全。

关于从程序内部复制 C 程序的整个 bss 和数据段?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51218859/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com