신호를 의미합니까? 충돌이나 제로가 나올 때처럼? 다음은 신호를 포착하는 posix 예제입니다.
void abortHandler(int signum, siginfo_t* si, void* unused)
{
const char* name = NULL;
switch(signum)
{
case SIGABRT: name = "SIGABRT"; break;
case SIGSEGV: name = "SIGSEGV"; break;
case SIGBUS: name = "SIGBUS"; break;
case SIGILL: name = "SIGILL"; break;
case SIGFPE: name = "SIGFPE"; break;
case SIGPIPE: name = "SIGPIPE"; break;
}
if (name)
printf("Caught signal %d (%s)\n", signum, name);
else
printf("Caught signal %d\n", signum);
}
void trapSignals()
{
struct sigaction sa;
sa.sa_flags = SA_SIGINFO;
sa.sa_sigaction = abortHandler;
sigemptyset(&sa.sa_mask);
sigaction(SIGABRT, &sa, NULL);
sigaction(SIGSEGV, &sa, NULL);
sigaction(SIGBUS, &sa, NULL);
sigaction(SIGILL, &sa, NULL);
sigaction(SIGFPE, &sa, NULL);
sigaction(SIGPIPE, &sa, NULL);
}
Hello Sur, 자세한 내용을 제공해야합니다. 표준 C에는 인터럽트 (또는 이벤트 처리) 개념이 없습니다. 어떤 운영 체제인지, 어떤 유형의 인터럽트인지, 어떤 "이벤트 처리"메커니즘이 무엇인지 알려줄 필요가 있습니다. – Mat