wait 와 WIFEXITED 매크로 의 쓰임.

sok1029의 이미지

for(int i=0;i<4;i++)
{
pid= fork();
if(pid==0)
{

~~~~
~~~생략

WIFEXITED(status);
}

else
{
wait(&status);
~~
}

}
제가 예상한 것은 첫번째로 생성된 자식 프로세스가 끝나면 부모 프로세스(else)문의 내용을 실행하고 다시 자식을 생성해서 두번째 생성
자식프로세스 내용이 끝나면 else문에 부모프로세스를 실행하고를 예상 했는데
실행 때마다 뒤죽 박죽이네요.
왜 그런건가요 ? 제가 생각한 것은 WIFEXITED(status) 로 자식프로세스가 종료되면서 wait에 인자값을 줌으로써 else가 실행되고 이렇게 되리라 생각했는데 제 생각에 오류 좀 잡아주세요..

그리고 올바른 쓰임도 부탁드립니다.