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

问题描述:

我对C++相对缺乏经验,但我需要构建一个框架来混洗一些数据。不一定有关,但我的数据的一般流程路径需要是这样的:将数据从一个.exe传递到另一个

  1. 数据在Python脚本
  2. 蟒蛇对象传递给一个编译的C++扩展
  3. C++的扩展产生使某些变化和数据(大概指针?)传递给编译的C++/CUDA代码文件(.exe)
  4. C++/CUDA的.exe确实东西
  5. 数据的处理回到Python脚本并送到更Python函数

第3步是我遇到麻烦的地方。我将如何去调用包含CUDA代码的.exe文件,使其可以访问在C++ python扩展中看到的数据?我认为我应该能够通过指针,但我无法找到解释如何的资源。我已经看到了创建共享内存的参考,但我还不清楚这些细节。

+0

您需要对IPC(进程间通信)机制进行一些研究。 –

+0

你看过C++的python绑定吗?您可以从python内部调用C++类/方法/函数 –

+1

您不能传递指针,因为地址只对拥有进程有效。 – Ceros

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

一些例子:从共享文件

  • 写入/读取数据到/(不要忘记锁定,使他们不上海誓山盟绊倒)。

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

  • 使用共享内存。

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

  • 在进程之间使用管道。

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

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

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

+0

Websocket或RESTful与CppRest(卡萨布兰卡) – Ceros

+0

@Ceros只是套接字(正如我已经提到),只是在顶部的一个额外的协议层。 –