私のコードを確認してください。それは、1つの親の2つの子を生成するC++プログラムです。ユーザーはnumの値を入力して一連のプロセスを作成する必要があります。問題は、子供のpidはどのように私はそれらを異なることができます各親のための同じですか?fork()を使って2つの子を生成するためのC++ ++
#include<iostream>
#include<sys/types.h>
#include<unistd.h>
#include <sys/wait.h>
using namespace std;
int main()
{
cout<<"Please enter a number of process "<<endl;
int num;
cin>>num;
int j;
for(j=0; j<num; j++)
{
pid_t pid;
pid = fork();
if(pid < 0)
{
cout<<"Error"<<endl;
exit(1);
} else if (pid > 0) {
cout << "Parent " << getpid() << endl;
exit(0);
}
else {
int i;
for(i = 0; i < 2; i++) {
wait(NULL);
cout << " Child " << getpid() << endl;
}
}
}
return 0;
}
出力はあなたのコードで
Parent 27130
Child 27322
Child 27322
Parent 27322
Child 31901
Child 31901
Parent 31901
Child 20453
Child 20453
にです期待される成果が何であるかはわかりません。 –
@RSahu彼は一度だけ印刷したいと思っています。彼は、親が作成する2つの子プロセスのpidを見たいと思っています。 –