Помогите разобраться, у меня следующая задача, процесс должен создавать рекурсивно по 2 процесса с fork(), дождаться их завершения чтоб потом смочь обработать данные полученные от них вот что я сделал(конечно это не работает )
Код | #include <stdio.h> #include <unistd.h> #include <sys/wait.h> #include <sys/types.h> int main() { int i,m,p=0,q=5; int* status; pid_t pidchild1,pidchild2; start: if (p<q) { m=(p+q)/2; for (i=0;i<2;i++) if (!fork()) { if (!i) { pidchild1=getpid(); q=m; if (q-p==1) printf("1 parent=%d child=%d p=%d q=%d\n",getppid(),getpid(),p,q); } else { pidchild2=getpid(); p=m+1; if (q-p==1) printf("2 parent=%d child=%d p=%d q=%d\n",getppid(),getpid(),p,q); } goto start; } else { waitpid(pidchild1,status,0); waitpid(pidchild2,status,0); printf("!!! parent=%d child1=%d child2=%d\n",getpid(),pidchild1,pidchild2); } } return 0; }
|
|