2011-02-05 4 views

답변

5

wait을 계속하는 단 하나의 아이를 기다립니다 전에 모든 자식 프로세스를 종료하기를 기다립니다 있도록() 기다려야 통과해야합니까 인수. 이 errno == ECHILD-1을 반환 할 때까지 루프에서 wait(NULL)를 호출해야합니다 :

while (wait(NULL) != -1 || errno != ECHILD) { } 

wait(2) manual page:

ECHILD (for wait()) 

에서 호출 프로세스가 어린이를 기다리지 어떤이 없습니다.

EINTR 

WNOHANG가 설정되지 않은 및 차단 해제 신호 또는 SIGCHLD는 가 잡혔다; 신호 (7) 참조.

이와 같이, 잡힌 신호에 속지 않도록 ECHILD를 확인해야합니다.

+0

왜 errno는 ECHILD – user465983

+0

@user465983이어야하며, ECHILD – bdonlan

+0

에 대한 인용문이 추가 된 이유는 무엇입니까? 인수없이 대기 (NULL)하는 이유는 무엇입니까? – user465983

관련 문제