我正在开发一个项目,要求我将一些数据加载到运行时确定的内存地址的内存中,然后将ELF二进制文件加载到同一个地址空间。我知道我可以将ELF编译为与位置无关的,但是如何分配我的内存块并然后加载并运行二进制文件而不覆盖内存块或移入不同的地址空间?
答案 0 :(得分:1)
Exec取代了整个内存空间,我认为你无法做到这一点。 但也许您可以使用共享内存在新旧流程之间共享数据?
答案 1 :(得分:1)
您可以将ELF二进制文件编译为共享库,然后将其动态链接到原始进程吗?动态链接器应该尊重现有的malloc / mmap内存分配,而不是踩它们。