質問: 5; while(n--) { // stat('/proc/`getpid()`/stat', &buf); // printf('gid:%d pid:%d\n', (int)buf.st_gid, (int)getpid()); printf('pid:%d\n', getpid()); sleep(3); } } else if(pid > 0) { wait(&exit_status); } } printf('done...\n'); return 0; } fork를 완전히 이해했다고 생각했는데, 제 생각 범위에서 일종의 bug 프로세스가 나오는데요.... 코드를 보면 각각의 pid를 5번씩 출력하고 끝내야 하는데, 이 출력 마지막에 새로운 프로세스가 5번 더 출력이 되는데 왜 그런건가요....?
回答: 아....exit처리를 안해서 그런 것 같습니다.. 그래서 처음에 만들어진 pid가 for문 2번째를 타서 새로 또 만든 것 같네요... 그래도 도움이 될지 모르니 질문은 남기겠습니다 :((((((((((((.....