
PCNTL_WEXITSTATUS 함수는 프로세스의 종료 상태를 확인하는 데 사용됩니다. 이 함수의 반환값은 프로세스의 종료 코드를 8비트로 반환합니다.
프로세스가 정상적으로 종료된 경우, 반환값은 0이 아닌 0이 반환됩니다. 이는 POSIX에서 정의한 EXIT_SUCCESS와 동일합니다.
반환값이 0이 아닌 경우, 프로세스가 비정상적으로 종료된 것입니다. 이 경우, 반환값을 8비트로 나누어 각 비트의 의미를 확인할 수 있습니다.
예를 들어, 반환값이 0x80인 경우, 프로세스가 시그널로 종료된 것입니다. 반환값이 0x40인 경우, 프로세스가 SIGFPE로 종료된 것입니다.
다음은 예제입니다.
#hostingforum.kr
c
#include
#include
#include
int main() {
pid_t pid = fork();
if (pid == 0) {
// 자식 프로세스
exit(0x80); // 시그널로 종료
} else {
// 부모 프로세스
wait(NULL);
int status = WEXITSTATUS(getppid());
printf("프로세스의 종료 상태: 0x%xn", status);
}
return 0;
}
이 예제에서, 자식 프로세스는 시그널로 종료되었습니다. 부모 프로세스는 자식 프로세스의 종료 상태를 확인하여 0x80을 출력합니다.
2025-06-14 09:15