我是 C++ 的新手,在 Linux 上开发一个简单的程序,该程序应该调用同一目录中的另一个程序并获取被调用程序的输出,而不在控制台上显示被调用程序的输出。这是我正在处理的代码片段:
pid_t pid;
cout<<"General sentance:"<<endl<<sentence<<endl;
cout<<"==============================="<<endl;
//int i=system("./Satzoo");
if(pid=fork()<0)
cout<<"Process could not be created..."<<endl;
else
{
cout<<pid<<endl;
execv("./Satzoo",NULL);
}
cout<<"General sentance:"<<endl<<sentence<<endl;
cout<<"==============================="<<endl;
我遇到的一个问题是我可以在控制台上打印前两行,但我不能打印最后两行。我认为当我调用 Satzoo 程序时程序停止工作。另一件事是这段代码调用了 Satzoo 程序两次,我不知道为什么?我可以在屏幕上看到两次输出。另一方面,如果我使用 system() 而不是 execv(),那么 Satzoo 只能工作一次。
我还没有弄清楚如何在我的程序中读取 Satzoo 的输出。
任何帮助表示赞赏。
谢谢