Würden Sie bitte überprüfen Sie meinen Code es ist ein C++ - Programm, um 2 Kinder eines Elternteils zu generieren. Der Benutzer sollte den Wert num eingeben, um eine Prozesskette zu erstellen. Das Problem ist die Kinder Pid ist das gleiche für jeden Elternteil, wie kann ich sie anders machen?C++ mit fork(), um 2 Kinder zu generieren
#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;
}
Der Ausgang ist
Parent 27130
Child 27322
Child 27322
Parent 27322
Child 31901
Child 31901
Parent 31901
Child 20453
Child 20453
Es ist mir ist nicht klar, was die erwartete Leistung ist. –
@RSahu er möchte es nur einmal drucken. Er möchte die PID der zwei Kindprozesse sehen, die der Elternteil erstellt. –