将数据从一个.exe传递到另一个
我对C++相对缺乏经验,但我需要构建一个框架来混洗一些数据。不一定有关,但我的数据的一般流程路径需要是这样的:将数据从一个.exe传递到另一个
- 数据在Python脚本
- 蟒蛇对象传递给一个编译的C++扩展
- C++的扩展产生使某些变化和数据(大概指针?)传递给编译的C++/CUDA代码文件(.exe)
- C++/CUDA的.exe确实东西
- 数据的处理回到Python脚本并送到更Python函数
第3步是我遇到麻烦的地方。我将如何去调用包含CUDA代码的.exe文件,使其可以访问在C++ python扩展中看到的数据?我认为我应该能够通过指针,但我无法找到解释如何的资源。我已经看到了创建共享内存的参考,但我还不清楚这些细节。
还有很多方式两个可执行文件可以交换数据。
一些例子:从共享文件
写入/读取数据到/(不要忘记锁定,使他们不上海誓山盟绊倒)。
在进程之间使用TCP或UDP套接字来交换数据。
使用共享内存。
如果一个应用程序启动另一个应用程序,则可以通过命令行参数或在环境中传递数据。
在进程之间使用管道。
在进程之间使用Unix域套接字。
还有更多的选择,但以上可能是最常见的选择。
您需要研究的是IPC(进程间通信)。
Websocket或RESTful与CppRest(卡萨布兰卡) – Ceros
@Ceros只是套接字(正如我已经提到),只是在顶部的一个额外的协议层。 –
您需要对IPC(进程间通信)机制进行一些研究。 –
你看过C++的python绑定吗?您可以从python内部调用C++类/方法/函数 –
您不能传递指针,因为地址只对拥有进程有效。 – Ceros