fork 시 return 값에 대해
글쓴이: jai / 작성시간: 수, 2004/01/14 - 10:28오전
waitpid(pid, &status, 0); 이고,
자식이 exit 함수를 호출하여 종료한 경우,
status 는 상위 8비트( exit 코드) | 하위 8비트 (0x00) 로 구성된다고 해서요.
매크로 WIFEXITED(status) 가 non-zero 일 때 WEXITSTATUS 는 항상 0을 return 하는 건가요? 왜 상위 8비트가 아니라 하위 8비트를 평가하는건지 잘 모르겠습니다.
Quote:
wait 맨페이지
WEXITSTATUS(status)
exit() 를 호출하기 위한 인자나 주 프로그램에서
return 문장을 위한 인자로써 설정되고 종료된 자식의
반환 코드의 최하위 8비트를 평가한다. 이 매크로는
WIFEXITED 가 non-zero 를 반환할때만 평가된다.
Forums:
Re: fork 시 return 값에 대해
peace :)
Re:
wait() 나 waitpid() 에서 되돌려 주는 status 코드중,
하위 8 비트가 Child Process 의 반환값입니다.
상위 8 비트는 Child Process 의 종료 상태를 위해 사용하죠.
(종료 상태라는건, Child 가 정상 종료했다거나, 아니면 Signal 을 받아서
종료했다거나 하는 그런 것들을 의미하는 것입니다.)
댓글 달기