자식프로세스 기다리는 것 wait 하나로 종결???
글쓴이: c80251 / 작성시간: 금, 2012/04/13 - 12:29오전
#include<stdio.h> #include<stdlib.h> #include<unistd.h> #include<sys/types.h> int main(void) { pid_t pid, cpid; char *message; int n; printf("fork program starting\n"); pid = fork(); switch(pid) { case -1: printf("fork failed\n"); exit(1); case 0: message = "This is the child"; n=5; break; default: wait(); message = "This is the parent"; n=3; break; } for(; n>0; n--) { puts(message); sleep(1); } exit(0); }
-------------------------------------------------------------------------
위는 제가 이번 학교과제로 작성한 소스입니다.
자식프로세스를 생성하고 부모프로세스가 자식프로세스의 행동이 끝날때까지 기다리는 것인데
저는 이것은 단 한줄의 소스코드로 완성했습니다.
wait(); <----------이놈입니다.
wait이라는 함수 자체로 부모프로세스가 작동이 중지 되는건가요?
다른 사람들 소스보니 저곳으로 상태값을 받아오거나
아니면 자식프로세스가 종료되고 나서 다른 변수에 종료값을 받아서 그걸로 판별하던데...
저는 저거 한놈으로 끝내버리니...
허무하고... 설명할 방법도 없고 막막하네요.
왜 wait 함수에 아무런 매개변수도 전달되지 않았음에도 이러한 결과가 나오는지 알수 있나요?
Forums:
man 2 wait 읽어보시면 설명하실 수 있을
man 2 wait
읽어보시면 설명하실 수 있을 듯.
댓글 달기