Fork、父进程、子进程和无限循环 我试图创建一个C++程序,它计算模拟中的一些值,然后将输出传递给Python脚本进行绘图。两个进程都在无限循环中运行,C++程序计算仿真中的步骤,并通过管道传递到Python程序,Python程序反复从管道读取数据并显示数据。

Fork、父进程、子进程和无限循环 我试图创建一个C++程序,它计算模拟中的一些值,然后将输出传递给Python脚本进行绘图。两个进程都在无限循环中运行,C++程序计算仿真中的步骤,并通过管道传递到Python程序,Python程序反复从管道读取数据并显示数据。,c++,linux,fork,C++,Linux,Fork,到目前为止,我已经尝试通过分叉当前进程并在子进程下执行Python脚本来实现这一点,但是当我在父进程中启动无限循环时,它会阻止所有IO,并且在我终止父进程并将子进程变成僵尸之前,不会向屏幕输出任何内容。启动脚本的C++程序如下: intmain(intargc,char*argv[]){ int pipe_至_py[2]; 如果(::管道(管道到管道)){ STD::你想要的解决方案是挑战性的,很好。通常我讨厌这样的回答/评论,而不是回答问题:懒惰的解决方案是将输出写入文件并运行两个独立的进程。

到目前为止,我已经尝试通过分叉当前进程并在子进程下执行Python脚本来实现这一点,但是当我在父进程中启动无限循环时,它会阻止所有IO,并且在我终止父进程并将子进程变成僵尸之前,不会向屏幕输出任何内容。启动脚本的C++程序如下:

intmain(intargc,char*argv[]){
int pipe_至_py[2];
如果(::管道(管道到管道)){

STD::你想要的解决方案是挑战性的,很好。通常我讨厌这样的回答/评论,而不是回答问题:懒惰的解决方案是将输出写入文件并运行两个独立的进程。C++通过将前一个内容改写成文件来写入结果。如果你想在写入时锁定文件,可以使用BO。st文件锁定。它允许其他进程读取文件,即使文件已锁定。而且Python只读取文件。你所需要的解决方案是挑战性的,很好。通常我讨厌这样的回答/评论,而不是回答问题:懒惰的解决方案是将输出写入文件并运行两个独立的进程。C++通过将前一个内容改写写入文件,如果你想在文件中锁定文件。您可以使用boost文件锁。它允许其他进程读取该文件,即使它被锁定。python只读取该文件。