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