[c++] C++에서의 프로세스 강제 종료 및 종료 시그널 처리

프로그램이 실행 중에는 종료 시그널이나 예상치 못한 오류를 처리해야 할 때가 있습니다. C++에서는 이를 위해 여러 가지 방법을 제공하고 있습니다. 이 포스트에서는 C++에서의 프로세스 강제 종료와 종료 시그널 처리에 대해 알아보겠습니다.

1. 프로세스 강제 종료

C++ 프로그램에서 프로세스를 강제로 종료해야 할 때가 있습니다. 이때 std::exit() 함수를 사용할 수 있습니다. 이 함수는 현재 프로세스를 종료하고, 모든 열린 파일을 닫습니다. 예시를 통해 살펴보겠습니다.

#include <cstdlib>

int main() {
    // 프로그램 실행 중 강제로 종료
    std::exit(0);
}

2. 종료 시그널 처리

프로그램이 실행 중에는 종료 시그널을 받을 수 있습니다. 이를 처리하기 위해서 시그널 핸들러를 등록하여 특정 시그널에 대한 동작을 지정할 수 있습니다. 아래 예제는 SIGINT 시그널(일반적으로 Ctrl+C로 발생)을 처리하는 방법을 보여줍니다.

#include <csignal>
#include <iostream>

void signalHandler(int signum) {
    std::cout << "Received signal: " << signum << std::endl;

    // 추가적인 동작 수행 가능
}

int main() {
    // SIGINT(2) 시그널에 대한 핸들러 등록
    std::signal(SIGINT, signalHandler);

    // 무한루프
    while (true) {
    }

    return 0;
}

위 예제에서 signalHandler 함수는 SIGINT 시그널이 발생했을 때 호출되는 함수입니다.

마무리

이상으로 C++에서의 프로세스 강제 종료 및 종료 시그널 처리에 대해 알아보았습니다. 이러한 기능들을 적절히 활용하여 안정적이고 안전한 프로그램을 개발할 수 있습니다.