【发布时间】:2013-01-19 12:05:05
【问题描述】:
我有一个 64 位应用程序,它通过 popen2 实现创建 2 个子进程(32 位)。一切都是用 C++ 编写的。
我需要 2 个子进程来访问内存中的同一个对象,但我不知道如何执行此操作。
如果我理解正确,每个子进程都会有不同的内存映射,因此我不能只在两者之间传递内存地址。
附加信息:目标平台是 Mac 但我正在寻找一个尽可能独立于平台的答案 Mac 特定的答案很好,我可能不会在其他平台上使用这种方法.我只是对使用线程知之甚少;我走这条路是因为子进程必须是 32 位的。
【问题讨论】:
-
目前最简单的方法是创建线程而不是子进程。
-
您使用的是什么操作系统? [为什么不能使用线程?]
-
假设你的目标平台是Linux,看看[这个问题/答案][1] [1]:stackoverflow.com/questions/5656530/…
-
我在问题中添加了一些信息:我不知道如何从 64 位应用程序启动 32 位线程。我使用的是 Mac,但我正在寻找独立于平台的答案。
-
@MarceloCantos,@MatsPetersson 我的应用程序是 64 位并启动 2 x 32 位进程(每个子进程都链接到一个仅可用作 32 位的封闭源代码库)。在这种情况下是否可以使用线程?
标签: c++ ipc shared-memory popen