将数据从一个.exe传递到另一个.exe

时间:2017-03-01 19:19:53

标签: python c++

我对C ++的经验相对较少,但我需要构建一个框架来改变一些数据。不一定相关,但我的数据的一般流程需要像这样:

  1. 数据以python脚本生成
  2. 将python对象传递给已编译的C ++扩展
  3. C ++扩展进行了一些更改并将数据(可能是指针?)传递给已编译的C ++ / CUDA代码(.exe)
  4. C ++ / CUDA .exe做的东西
  5. 数据在python脚本中处理并发送给更多python函数
  6. 第3步是我遇到麻烦的地方。我如何调用包含CUDA代码的.exe,以便能够访问C ++ python扩展中看到的数据?我假设我应该能够以某种方式传递指针,但我很难找到解释如何的资源。我已经看到了创建共享内存的参考,但我也不清楚它的细节。

1 个答案:

答案 0 :(得分:3)

有两个可执行文件可以交换数据的许多方式。

一些例子:

  • 向/从共享文件写入/读取数据(不要忘记锁定,以免他们互相绊倒)。

  • 在进程之间使用TCP或UDP套接字来交换数据。

  • 使用共享内存。

  • 如果一个应用程序启动另一个应用程序,您可以通过命令行参数或环境传递数据。

  • 在流程之间使用管道。

  • 在进程之间使用Unix域套接字。

还有更多选择,但上述可能是最常见的选择。

您需要研究的是IPC(进程间通信)。