在 C++ 中使用系统打开程序后程序卡住
Program Get Stuck After Opening a Program Using System in 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
函数正在“阻塞”。这意味着 system
命令不会 return 直到你的程序 运行 退出。如果您必须从您的 C++ 代码中打开一个程序,您将需要为其启动一个新进程,以便您的代码可以继续 运行(有关如何执行此操作的一些信息,请参阅 this answer) .
要在您的两个程序之间发送和接收信息,您需要实施某种形式的进程间通信 (ipc)。请参阅 this reference 了解如何开始。
我想用 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
函数正在“阻塞”。这意味着 system
命令不会 return 直到你的程序 运行 退出。如果您必须从您的 C++ 代码中打开一个程序,您将需要为其启动一个新进程,以便您的代码可以继续 运行(有关如何执行此操作的一些信息,请参阅 this answer) .
要在您的两个程序之间发送和接收信息,您需要实施某种形式的进程间通信 (ipc)。请参阅 this reference 了解如何开始。