fork で子プロセスを複数生成する

C言語のforkで子プロセスを複数生成する方法。

#define P_MAX  10             //プロセス数
int main(){
	int pid[P_MAX];

	/*
	子プロセス生成。子プロセスは次の行から始まるため、
	このような記述をすると、子プロセスが子プロセスを生成しないで済む。
	*/
	for( i=0 ; i < P_MAX && (pid[i] = fork()) > 0 ; i++ ); 

	if( i == P_MAX ){			//親プロセスはすべての子プロセスの終了を待つ
		for(  i = 0 ; i < P_MAX ; i++ ){
			wait(&val);
		}
	}else if( pid[i] == 0){		//子プロセス
		printf("child:%d\n",i);
		exit(0);
	}else{
	    perror("child process") ;
	    exit(0);
	}
	return 0;
}