假设我有一个函数指针,可以调用它来完成一些任务。如何将指针指向的代码片段存储到磁盘上的文件中,以便稍后加载文件并使函数指针再次可用?
用例:这将在 JIT 编译器内部完成,以防止在下一次运行同一程序时产生 JIT 开销。
编辑:“Save and load function pointers to file”的答案不是我要找的。该问题涉及人们建议使用索引的有限数量的功能。但就我而言,函数可以是任何内容。
最佳答案
没有可移植的方法来做到这一点。您的选择是:
将指针与您选择的符号名称相关联,例如使用全局映射表,并将函数名序列化。在反序列化时,查找映射中的实际指针。
序列化真正的函数名称,可能还包含在映射中。在反序列化时,使用
dlsym
(或非 Unix 平台上的等效项,例如GetProcAddress
)获取函数指针。
关于c - 如何在 C 中保留函数指针?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35151633/