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); 
	} 
    } 
}