728x90
프로그램이 에러로 인해 죽는다거나 했을 때 감지하는 방법이 없을까하고 찾다보니
c++의 signal을 이용하면 가능한 것을 확인했다.
#include <iostream>
#include <csignal>
#include <thread>
using namespace std;
using namespace std::literals::chrono_literals;
void signalHandler(int signum)
{
cout << "interrupt signal (" << signum << ") received. \n";
}
int main()
{
signal(SIGSEGV, signalHandler); // segment violation
while(1)
{
cout << "sleep..." << endl;
std::this_thread::sleep_for(1ms);
static int count = 0;
++count;
if (count > 100)
{
struct n
{
int a;
}
n* nn = nullptr;
printf("int a : %d \n", nn->a); // nullptr 참조 후 프로그램 죽음.
}
}
}
결과
728x90
'Basic Programming > C, C++' 카테고리의 다른 글
C/C++ - QueueUserAPC (0) | 2023.04.20 |
---|---|
C/C++ - push_macro() (0) | 2022.10.12 |
C/C++ - vcpkg에서 MT, MD 변경 방법 (0) | 2022.02.17 |
C/C++ - 윈도우즈 화면 잠금 여부 구하기/스크린 세이버 실행 여부 구하기 (0) | 2022.02.09 |
C++ - Precise Sleep (0) | 2021.12.13 |