我对 C++ 相对缺乏经验,但我需要构建一个框架来整理一些数据。不一定相关,但我的数据的一般流程路径需要像这样:
- 数据在 python 脚本中生成
- python 对象被传递给已编译的 C++ 扩展
- C++ 扩展进行了一些更改并将数据(大概是指针?)传递给已编译的 C++/CUDA 代码 (.exe)
- C++/CUDA .exe 做事
- 数据在 python 脚本中处理并发送给更多 python 函数
第 3 步是我遇到问题的地方。我将如何调用包含 CUDA 代码的 .exe,以便它可以访问在 C++ python 扩展中看到的数据?我假设我应该能够以某种方式传递指针,但我无法找到解释如何传递的资源。我看到过有关创建共享内存的引用资料,但我也不清楚其中的细节。
最佳答案
两个可执行文件可以通过许多方式交换数据。
一些例子:
向共享文件写入数据/从共享文件读取数据(不要忘记锁定,以免它们相互绊倒)。
在进程之间使用 TCP 或 UDP 套接字来交换数据。
使用共享内存。
如果一个应用程序启动另一个应用程序,您可以通过命令行参数或在环境中传递数据。
在进程之间使用管道。
在进程之间使用 Unix 域套接字。
还有更多选项,但以上可能是最常见的选项。
你需要研究的是IPC(Inter-Process Communication)。
关于python - 将数据从一个 .exe 传递到另一个,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42540201/