私は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;
私が遭遇する問題の 1 つは、コンソールで最初の 2 行を印刷できるが、最後の 2 行を印刷できないことです。Satzoo プログラムを起動すると、プログラムが動かなくなったようです。もう 1 つのことは、このコードが Satzoo プログラムを 2 回呼び出すことです。理由はわかりません。画面に出力が 2 回表示されます。一方、execv() の代わりに system() を使用すると、Satzoo は 1 回しか機能しません。
プログラムで Satzoo の出力を読み取る方法がわかりません。
どんな助けでも大歓迎です。
ありがとう