我有一个程序可以创建 3 个辅助程序。在我的情况下,首选的通信方法是通过所有四个程序都可以访问的内存缓冲区。
有没有办法将指针、引用或任何类型的处理程序传递给子进程?
Update
三个子程序负责转换顶点数据,而主程序主要处理UI、系统消息、错误等。
我希望有某种方法可以利用 OpenCL,使四个程序可以共享一个上下文。如果这不可能,那么在所有程序中访问顶点数组会很好。
我想我们现在的目标平台是 Windows,但我们希望尽可能保持跨平台。如果没有办法利用 OpenCL 来实现这一点,我们可能会退回到为少数不同平台包装这段代码。
最佳答案
您的问题取决于平台,因此:
- 对于 Windows:Named Shared Memory
- 对于 Linux:mmap或 POSIX shared memory access
- 一般情况:boost::interprocess
关于c++ - 如何实现共享缓冲区?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6956170/