在c++中使用系统打开程序后程序卡住



我想用c++代码打开一个程序(有像CMD这样的终端),但是当我尝试System()并且该程序打开时,我的c++代码会卡住,直到我关闭程序,其余的代码将执行。我想打开一个程序,它是一个终端,打开后,我想发送一些命令给程序来执行它。

1 -在调用System()函数

之后继续c++代码的其余部分2 -使用c++代码发送命令给程序。

3 -接收命令结果

下面是我使用的简单代码:
#include <iostream>
int main()
{
system("path of the program");

while(true)
{
// some commands that I want to send to terminal
// receive result 
//....
}
}

Windows C运行库中的system函数为" blocking "。这意味着system命令不会返回,直到使用它运行的程序退出。如果你必须在你的c++代码中打开一个程序,你需要为它启动一个新的进程,这样你的代码才能继续运行(关于如何这样做的一些信息请参阅这个答案)。

要在两个程序之间发送和接收信息,需要实现某种形式的进程间通信(ipc)。

相关内容

  • 没有找到相关文章

最新更新