同时使用 Python 和 C++ 运行读取和写入文件

Simultaneous Python and C++ run with read and write files

本文关键字:读取 文件 运行 C++ Python      更新时间:2023-10-16

所以这个是一个doozie,有点太具体了,无法在网上找到答案。

我正在用C++写入一个文件,同时用Python读取该文件以移动机器人。或者尝试。

当我尝试同时运行两个程序时,C++程序首先运行,然后运行 Python 程序。

这是我使用的命令:

./ColorFollow & python fileToHex.py

即使我切换命令的顺序,也会发生这种情况。 即使我在不同的终端中运行它们(这是同一件事,只是覆盖所有基础)。

Python 和 C++ 代码都在"无限"循环中读取/写入,所以这两个应该运行直到我说停止。

代码工作正常;当Python脚本最终运行时,机器人按预期移动。只是代码没有同时运行。

有没有办法做到这一点,或者这是不可能的?

如果您需要更多信息,请告诉我,但代码几乎是您所期望的。

如果您使用的是 Linux,&将发布 bash 会话,在这种情况下,CollorFlow 和 fileToXex.py 将在不同的 bash 会话中运行。
同时,合成./ColorFollow | python fileToHex.py看起来很有趣,因为您将 ColorFollow 的 stdout 重定向到 fileToHex.py stdin - 它可以通过在退出时打印一些代码字符串来同步脚本,然后通过 fileToHex.py 读取它并退出。
我会创建一些像/var/run/ColorFollow.flag这样的空文件,并在其中一个进程退出时写入 1。不是管道 - 因为我们不在乎哪个进程将首先开始。因此,如果 ColorFollow 的下一个循环步骤在文件中看到 1,它会将其删除并退出(表示 fileToHex 已经退出)。相同 - 对于 fileToHex - 检查每个循环步骤的标志文件,并在删除标志文件后退出(如果存在)。