int i = 5
int id = 0
while(pid = fork()) {
if(--i == 0) break;
id++;
}
이런식으로 자식프로세스 5개 만든다고 치면요
fork() 아랫줄부터 자식프로세스가 부모랑 같은 작업 하잖아요(저 코드에선 while문 안쪽부터)
그럼 자식프로세스는 while 루프를 안돌게 되는게 맞나요? 결과는 부모1 + 자식5 되는게 맞는거 같은데요
자식프로세스마다 번호를 다르게 지정할려고 id변수를 자식마다 하나씩 증가시켜줬는데
결과값이 0 0 1 2 3 4 이렇게 나와야하는데
막상 실행시켜보면 0 1 2 3 4 4 이렇게 나오네요... 원인이 멀까요.. ㅠ
해당 댓글은 삭제되었습니다.
아 부모프로세스에서 id가 자꾸 증가하니까 4가 2개 나오고 자식이 0 1 2 3 4 이렇게 나오는게 맞더라구요 보니까,,, 반복문 밖에서 검사했어요
그리고 child가 반환값이 0이라서 반복문 실행 안되는건 아는데 그 자식프로세스가 while문 내부 코드 돌고 다시 조건식 검사하러 안가는지 궁금해서 여쭤본거예요 그냥 반복문 마지막 } 만나면 무시하고 아랫줄로 가는지요,,,