将函数指针保存在共享内存中

我知道数据可以被多个应用程序使用共享内存保存和使用。我想知道是否有可能将函数指针保存在共享内存中?我的目的是拨打电话从我的共享对象返回到具有相同返回值和不同应用程序参数的函数。将函数指针保存在共享内存中

回答:

除非你以某种方式加载代码到共享内存区域,或以其他方式导致在这两个过程在同一地址加载代码号,函数指针将是无效的。

回答:

除非您完全确定自己在做什么,否则在共享内存段中保存函数指针听起来是一个糟糕的主意,您最终可能会访问您的进程没有权限的函数指针,并且可能会最终导致你的程序崩溃。

回答:

没有,不能共享的函数指针,如果你愿意,u需要使该函数库,并用它在你的进程

回答:

它不能保证共享库将被装载到同一个地址两种不同的应用。事件更糟糕的是,由于地址空间布局随机化,图书馆可能被加载到任何随机地址。因此,函数指针不是不变的,因此不能存储在任何地方。

作为解决方案,您可以在两个进程中创建一个包含所有可能的回调的函数表,并在共享内存中存储偏移量。当然,那些表应该是,确切地说一样。

以上是 将函数指针保存在共享内存中 的全部内容, 来源链接: utcz.com/qa/264476.html

回到顶部