#include <stdio.h>
int x,i;
void main() {
        for(i=1;i<6;i++) {
        x=fork();
        if(x!=0) {
                printf("korea%d\n",x);
                for(;;);
                }
        else {
                printf("Japan%d ",i);
                fflush(stdout);
                sleep(1);
                }
        }
}

실행결과는 이렇습니다
Japan1 korea13390
Japan2 korea13391
Japan3 korea13392
Japan4 korea13393
Japan5 korea13394

x=fork(); 를 하면
fork()는 child에 0을 리턴하니까
if문에 걸리지않고
else에걸려서 Japan이 출력되는것....아닌가요?;
그게 맨위의 for문을 계속 돌아도 계속 그래야하는것 아닌가요?
왜 Korea가 출력되는건가요ㅠ
그리고.. printf("korea%d\n",x); 의 x가 출력하는 값은 무엇을 의미하나요?


에..또.. fflush(stdout);을 빼면...

Japan1 Japan2 Japan3 Japan4 Japan5 korea13378
Japan1 Japan2 korea13380
Japan1 Japan2 Japan3 korea13381
Japan1 korea13379
Japan1 Japan2 Japan3 Japan4 korea13382

이렇게 출력되는데요..
fflush(stdout);가 버퍼에 있는걸 비워주는거라고 알고는 있는데..
왜 저렇게 나오는지 모르겠네요...
알려주시면 감사하겠습니다^^;;


아... 그리고 시스템프로그래밍..과목 듣는건데...
영어강의고... 처음이고 해서 ㅠ
지금까지 한게...
vi,gcc,file I/O, mycat해서 명령어 만든거랑(command line argument), fork(), exec()등(system calls)
인데요...
공부하기 좋은 책 추천 좀 부탁드릴께요;ㅁ;