23,120
社区成员
发帖
与我相关
我的任务
分享
#include <signal.h>
void sigroutine(int dunno) { /* 信号处理例程,其中dunno将会得到信号的值 */
switch (dunno) {
case 1:
printf("Get a signal -- SIGHUP \n");
break;
case 2:
printf("Get a signal -- SIGINT \n");
break;
case 3:
printf("Get a signal -- SIGQUIT \n");
break;
case 11:
printf("Get a signal -- 11 \n");
break;
default:
printf("Get %d \n", dunno);
break;
}
return;
}
void initSignal()
{
#ifdef SIGINT
signal(SIGINT, sigroutine);
#endif /* SIGINT */
#ifdef SIGSEGV
signal(SIGSEGV, sigroutine);
#endif /* SIGSEGV */
#ifdef SIGBUS
signal(SIGBUS, sigroutine);
#endif /* SIGBUS */
#ifdef SIGABORT
signal(SIGABORT, sigroutine);
#endif /* SIGABORT */
#ifdef SIGABRT
signal(SIGABRT, sigroutine);
#endif /* SIGABRT */
#ifdef SIGILL
signal(SIGILL, sigroutine);
#endif /* SIGILL */
#ifdef SIGFPE
signal(SIGFPE, sigroutine);
#endif /* SIGFPE */
}
int main(int argc, char*argv[])
{
initSignal();
while(1)
sleep(1);
return 0;
}