【发布时间】:2010-12-06 09:44:30
【问题描述】:
我知道每个进程都会创建自己的内存地址空间,但我想知道,
如果进程 A 有这样的功能:
int DoStuff() { return 1; }
还有一个指针类型定义,例如:
typedef int(DoStuff_f*)();
还有一个 getter 函数,例如:
DoStuff_f * getDoStuff() { return DoStuff; }
还有一种神奇的方式与进程 B 进行通信,例如 boost::interprocess
是否可以将函数指针传递给进程B并调用
进程 A 的 DoStuff 直接来自进程 B?
【问题讨论】:
-
请说明您正在处理的操作系统。对于 vxWorks 和 Linux,这个问题的答案非常不同。
-
同意 - 所有“否”的答案都应理解为“不可移植”和/或“不在我的操作系统上”。在某些具有非常轻量级操作系统的平台上,没有受保护的内存,它可以正常工作。
-
我想是 Windows。我的假设基于早期 Maciek 的问题和函数命名风格:)
-
@onebyone:基本上,如果您在没有虚拟地址空间的 SOC 上运行,它可能是可能的。