这是一个非常概念化的问题,如果听起来含糊不清,请原谅我。
我正在研究一个应用程序,其中包含一些静态数据的代码需要在共享上下文中同时执行。特别是该代码将回调主机应用程序并改变其内部状态。调整代码以不使用静态数据是非常昂贵的。因此,我考虑通过fork()将每个执行包装在自己的进程中,并共享除已知静态数据之外的所有内容。那可能吗?如果是这样,父进程中的分配会发生什么?
据我所知,共享内存通信的通常模式是明确指出要共享内存的哪些部分。
作为替代方案,是否有可靠的方法在运行时重新定位二进制文件中的静态地址,即将多个副本复制到堆上的不同位置?