信号是操作系统传给进程的中断,会提早终止一个程序;
有些信号不能被捕获,下面的信号在程序中可被捕获,基于信号可采取适当的动作;
这些信号定义在C++头文件<csignal>中;
SIGABRT:程序的异常终止,如abort;
SIGFPE: 错误的算术运算,如除以0导致的溢出;
SIGILL: 检测非法指令;
SIGINT: 接收到交互注意信号;
SIGSEGV:非法访问内存;
SIGTERM:发送到程序的终止请求。
signal() 函数 : 用于捕获突发事件;
void (*signal ( int sig ,void (*func) (int) ) ) (int);
接收2个参数:第一个是一个整数,代表了信号的编号;第二个参数是一个指向信号处理函数的指针;
在程序中不管捕获什么信号,都必须使用 signal 函数来注册信号,将其与信号处理程序相关联;
raise() 函数 :生成信号;
int raise(signal sig); // 该函数带有一个整数信号编号作为参数
sig 是要发送的信号的编号,包括:SIGINT、SIGABRT、SIGFPE、SIGILL、SIGEGV、SIGTERM、SIGHUB;