www.pudn.com > ph2.zip > ph.c
#include "head.h" #include#include main() { int f1, f2, f3, f4; int i; pid_t pid, pidset[5]; pipe(pidset); if( (pid = fork() ) < 0) err_sys("fork error"); else if(pid > 0){ for(i=0;i<4;i++) if(pid > 0){ pidset[i] = pid; printf("stored pidset[%d]=%d\n",i,pidset[i]); if( (pid = fork() ) < 0) err_sys("fork error"); printf("create complete, pid=%d\n",pid); } if(pid > 0){ pidset[i] = pid; write(pidset[0], sleep(20); } } else{ sleep(2); for(i=0;i<5;i++){ printf("getpid=%d pidset[%d]=%d\n",getpid(),i,pidset[i]); if(getpid() == pidset[i]) printf("this is ph%d\n", i+1); } } }