#include<stdio.h>
#include<unistd.h>
#include<stdlib.h>
int main(void)
{
int istatus;
pid_t chPid[10];
int i;
for(i=0;i<10;i++){
printf("=======================================\n");
chPid[i] = fork(); // Creating child
if(chPid[i] == 0){
int j;
for(j=0;j<20;j++){
printf("\t\tchild... %d : %d\n", i, j);
sleep(i%2+1);
}
printf("\t\tchild... exit... %d : %d \n", i, chPid[i]);
exit(0);
}else if(chPid > 0){
printf("\t\tparent... new child id : %d\n", chPid[i]);
}else{
printf("fork error....\n");
}
usleep(100000);
} /* while("123"){ */
for(i=0;i<10;i++){
waitpid( chPid[i], &istatus, 0 );
printf("parent : chield %d is exited\n", chPid[i]);
}
return 0;
}
fork 하면 각자 PID 가지는 프로세스가 여러개가 돌아가는데
while문 안에서 지금 내 PID 확인해서 그거따라 액션을 다르게 하는거임