-1

1 つは Python で、もう 1 つは C++ でアプリケーションにコーディングしました。Python アプリの途中で、C++ アプリを実行して入力を渡し、出力を受け取る必要があります。サブプロセスを使用してPythonからC++アプリを呼び出すことができることはすでに知っていますが、そのC++アプリは呼び出されるたびに初期計算を行う必要があるため、プログラムが非常に遅くなります。だから私が探していたのはこれです:

C++ アプリを無限 while ループに入れて実行し続けます。次に、私のpythonアプリでは、c ++アプリへの呼び出しが必要なときはいつでも、データを渡して出力を取得します。このようにして、この呼び出しを行う必要があるたびに初期状態を繰り返さないようにすることができます。

とにかくこれを行うことはありますか?これらすべてを制御する別のアプリケーションを作成するようなものです。また、実行中の python アプリの複数のインスタンスが存在する可能性がありますが、多くのメモリを必要とするため、実行中の c++ アプリを 1 つだけにしたいです。

4

2 に答える 2

3

subprocess.Popen を使用すると、プロセスを開いて開いたままにし、stdin と stdout を使用してプロセスと通信できます。プロセスを開くときは、 stdout=subprocess.PIPE, stdin=subprocess.PIPE を使用します。
次に、c++ プログラムの出力を process.stdin に書き込み、process.stdout から読み取ることができます。

于 2013-09-16T07:17:31.903 に答える