将数据从 c++ 程序传递到 linux 上的 python 程序 [关闭]

Posted

技术标签:

【中文标题】将数据从 c++ 程序传递到 linux 上的 python 程序 [关闭]【英文标题】:Pass data from a c++ program to a python program on linux [closed] 【发布时间】:2017-02-27 17:08:16 【问题描述】:

我有一个返回值的 c++ 程序(值不断变化),我想制作一个 python 程序来获取 c++ 程序返回的值并使用它。 我想问一下是否有任何方法可以执行此任务或任何可以帮助我实现此任务的方法。 我希望这两个程序能够同时运行。

好吧,假设 c++ 程序是下面的代码:

int main() 
    int x = 1;
    while(1)
        fprintf(stdout,"%d\n", x);
        x++;

return 0;

如何制作一个 Python 程序,每次更改时都将变量 x 作为其输入。

【问题讨论】:

如何返回值?它是否将其写入stdout 然后终止?你控制这个 C++ 程序吗?是否可以将其转换为动态库并使用 ctypes 之类的外部函数库或通过编写 python c 扩展将其加载到 python 中? 告诉我们更多关于您希望它们如何运行的信息。一个人打电话给另一个人吗?您可能会设置一个队列(想到 zeromq),或共享一个中间文件。 【参考方案1】:

您可以使用 管道 将 C++ 程序的 stdout 转发到 Python 程序的 stdin

#!/bin/bash
./my_cpp_program.x | ./my_python_program.py 

【讨论】:

以上是关于将数据从 c++ 程序传递到 linux 上的 python 程序 [关闭]的主要内容,如果未能解决你的问题,请参考以下文章

如何将参数从c ++传递到linux shell

使用 jni 将位图从 android 相机传递到 C++

将字节数组从 c++ 传递到 c# 程序集都有哪些不同的方法?

如何将结构从 C++ 应用程序传递到 C++ Win32 DLL?

将数据从 Python 程序发送到 C++ 程序的策略

使用名称管道将结构从 C# 应用程序传递到 C++ 服务器?