Manpages

이 름

wait3, wait4 − 프 로 세 스 종 료 를 기 다 린 다 . BSD 스 타 일

사 용 법

#define _USE_BSD
#include <sys/types.h>
#include <sys/resource.h>
#include <sys/wait.h>

pid_t wait3(int *status, int options,
struct rusage *
rusage)

pid_t wait4(pid_t pid, int *status, int options,
struct rusage *
rusage)

설 명

wait3 함 수 는 자 식 이 종 료 될 때 까 지 나 현 재 프 로 세 스 를 종 료 시 키 거 나 시 그 널 처 리 함 수 를 호 출 하 는 행 동 을 하 는 신 호 가 전 달 될 때 까 지 현 재 프 로 세 스 의 실 행 을 일 시 중 지 한 다 . 만 일 자 식 이 호 출 시 간 에 이 미 종 료 되 었 다 면 (좀 비 프 로 세 스 ), 함 수 는 즉 시 리 턴 한 다 . 자 식 이 사 용 한 시 스 템 자 원 들 은 모 두 풀 어 진 다 .

wait4 함 수 는 pid 인 자 가 가 리 키 는 자 식 이 종 료 될 때 까 지 나 현 재 프 로 세 스 를 종 료 시 키 거 나 시 그 널 처 리 함 수 를 호 출 하 는 행 동 을 하 는 신 호 가 전 달 될 때 까 지 현 재 프 로 세 스 의 실 행 을 일 시 중 지 된 다 .

만 일 pid 로 지 정 된 자 식 이 호 출 시 간 에 이 미 종 료 되 었 다 면 (좀 비 프 로 세 스 ), 함 수 는 즉 시 리 턴 한 다 . 자 식 이 사 용 한 시 스 템 자 원 들 은 모 두 풀 어 진 다 .

pid 값 은 다 음 중 하 나 이 다 :

< −1

이 것 은 프 로 세 세 그 룹 ID가 pid의 절 대 값 과 같 은 어 떤 자 식 프 로 세 스 를 기 다 리 라 는 의 미 이 다 .

−1

이 것 은 어 떤 자 식 프 로 세 스 를 기 다 리 라 는 의 미 이 다 ; 이 것 은 wait3호 출 과 같 다 .

0

이 것 은 프 로 세 스 그 룹 ID가 호 출 프 로 세 스 의 ID와 같 은 어 떤 자 식 프 로 세 스 를 기 다 리 라 는 의 미 이 다 .

> 0

이 것 은 프 로 세 스 ID가 pid의 값 과 같 은 자 식 을 기 다 리 라 는 의 미 이 다 .

options 의 값 은 0 이 거 나 다 음 상 수 의 어 떤 것 과 OR 이 다 .
WNOHANG

이 것 은 어 떤 자 식 도 종 료 되 지 않 았 다 면 즉 시 리 턴 하 라 는 의 미 이 다 .

WUNTRACED

이 것 은 멈 추 거 나 상 태 가 보 고 되 지 않 은 자 식 들 을 위 해 역 시 리 턴 하 라 는 의 미 이 다 .

만 일 statusNULL이 아 니 라 면 wait3 또 는 wait4status가 가 리 키 는 위 치 에 상 태 정 보 를 저 장 한 다 .

이 상 태 는 다 음 매 크 로 들 로 평 가 된 다 .(이 들 매 크 로 는 인 자 로 써 stat 버 퍼 (int)를 가 지 고 있 다 . -- 버 퍼 에 대 한 포 인 터 가 아 니 다 !)
WIFEXITED(
status)

가 non−zero 를 반 환 할 때 만 평 가 된 다 .

WEXITSTATUS(status)

exit() 를 호 출 하 기 위 한 인 자 나 주 프 로 그 램 에 서 return 문 장 을 위 한 인 자 로 써 설 정 되 고 종 료 된 자 식 의 반 환 코 드 의 최 하 위 8비 트 를 평 가 한 다 . 이 매 크 로 는 WIFEXITED 가 non−zero 를 반 환 할 때 만 평 가 된 다 .

WIFSIGNALED(status)

만 일 자 식 프 로 세 스 가 잡 혀 지 지 않 은 신 호 때 문 에 종 료 되 었 다 면 참 을 반 환 한 다 .

WTERMSIG(status)

자 식 프 로 세 스 를 종 료 하 도 록 야 기 한 신 호 의 숫 자 를 반 환 한 다 . 이 매 크 로 는 만 일 WIFSIGNALED 가 non−zero 를 반 환 할 경 우 만 평 가 된 다 .

WIFSTOPPED(status)

반 환 의 원 인 이 된 자 식 프 로 세 스 가 현 재 정 지 되 어 있 다 면 참 을 반 환 한 다 .; 이 것 은 이 함 수 가 WUNTRACED를 사 용 했 을 때 만 가 능 하 다 .

WSTOPSIG(status)

자 식 을 정 지 하 도 록 야 기 한 신 호 의 숫 자 를 반 환 한 다 . 이 매 크 로 는 WIFSTOPPED 가 non−zero 를 반 환 할 경 우 만 평 가 된 다 .

만 일 rusageNULL이 아 니 라 면 <sys/resource.h> 에 정 의 되 어 있 는 struct rusage 구 조 체 는 회 계 정 보 를 채 운 다 . 세 부 사 항 을 위 해 서 getrusage(2) 를 참 조 해 라 .

반 환 값

종 료 된 자 식 의 프 로 세 스 ID는 에 러 일 때 −1이 거 나 (특 별 히 , 지 정 된 종 류 의 기 다 리 지 않 는 자 식 프 로 세 스 들 이 있 지 않 을 때 ) 만 일 WNOHANG 이 사 용 되 고 어 떤 자 식 도 이 용 할 수 없 다 면 0을 반 환 한 다 . 나 중 두 경 우 에 errno 는 적 당 한 값 으 로 설 정 된 다 .

에 러

ECHILD

지 정 된 자 식 프 로 세 스 를 기 다 리 지 않 는 프 로 세 스 가 존 재 하 지 않 는 다 .

ERESTARTSYS

만 일 WNOHANG 가 설 정 되 지 않 고 신 호 가 봉 쇄 되 지 않 았 거 나 SIGCHLD 가 잡 혔 을 때 이 다 . 이 에 러 는 시 스 템 콜 에 서 반 환 된 다 . 라 이 브 러 리 인 터 페 이 스 는 ERESTARTSYS를 반 환 할 때 허 용 되 지 않 는 다 . 그 러 나 EINTR는 반 환 된 다 .

호 환

SVr4, POSIX.1

관 련 항 목

signal(2), getrusage(2), wait(2), signal(7)

역 자

정 강 훈 <skyeyes [AT] soback.net>, 2000년 8월 7일