【发布时间】:2020-11-03 18:46:18
【问题描述】:
我目前正在尝试编写一个与硬件交互的 C 程序,我选择这样做是因为硬件制造商为此硬件提供了 C SDK。但是,我希望这个 C 程序将它从硬件(例如传感器)接收到的数据输出到管道,这样我就可以编写一个 Python 程序来获取数据并对其进行解析并对其进行一些分析。我在 Raspberry Pi (Linux) 上运行这些程序。如何在这两个不同的程序(Python 和 C)之间创建管道?我可以通过管道位置来做到这一点吗?
【问题讨论】:
-
popen() 可用于管道,而 execl() 可用于执行程序/文件。其他的不清楚。
-
无论是 C、Python、Perl、Ruby、Haskell 还是 Lisp,机制都是一样的。您将数据写入管道的一侧,而另一个进程从另一侧读取数据。管道不关心用于生成或使用数据的语言。
-
您可能需要考虑使用单个进程,而不是使用需要进程间通信的两个进程。您可以使用ctypes 使python 代码能够调用C 代码。
-
听起来你可能想看看 Unix 域套接字,而不是管道。
标签: python c linux raspberry-pi pipe