(1). SIGABRT:程序异常中止,如调用abort函数。
(2). SIGFPE:算术运算出错,如除数为0或溢出。
(3). SIGILL:非法函数映像,如非法指令。
(4). SIGINT:交互的用户按键请求,如同时按下Ctrl+C键。
(5). SIGSEGV:无效内存访问,段错误。
(6). SIGTERM:程序的中止请求。
#include <csignal>
#include <iostream>
#include <unistd.h>
using namespace std;
void signum(int num)
{
cout << "Signal: " << num << endl;
exit(num);
}
int main(int argc, char **argv)
{
signal(SIGINT, signum);
int i;
while(true)
{
cout << "Go To Sleep..." << endl;
i++;
if(i == 10)
{
raise(SIGINT); //raise reSIGINT
}
sleep(1);
}
return 0;
}
网友评论