개발자 Q&A

개발하다 막혔다면? 여기서 질문하세요! 초보부터 고수까지, 함께 고민하고 해결하는 공간입니다. 누구나 자유롭게 질문하고 답변을 남겨보세요!

2025.06.14 09:14

PCNTL_WEXITSTATUS 함수에 대한 질문

목록
  • 제로데이헌터 1일 전 2025.06.14 09:14
  • 2
    1
안녕하세요 선생님. PCNTL_WEXITSTATUS 함수를 사용하여 프로세스의 종료 상태를 확인하려고 하는데 이해가 잘 안 가는데 도와주세요.

제가 프로세스를 종료 시키고, 프로세스의 종료 상태를 확인하기 위해 PCNTL_WEXITSTATUS 함수를 사용했는데, 이 함수의 반환값이 0 인 경우 프로세스가 정상적으로 종료되었는지 확인하는 방법이 있나요?

또한, PCNTL_WEXITSTATUS 함수의 반환값이 0 이 아닌 경우, 프로세스가 비정상적으로 종료되었는지 어떻게 판단할 수 있나요?

선생님의 도움이 필요합니다.

    댓글목록

    profile_image
    나우호스팅  1일 전



    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

  • 개발자 Q&A 포인트 정책
      글쓰기
      50P
      댓글
      10P
  • 전체 28,075건 / 2 페이지

검색

게시물 검색