__sighandler_t signal
(int signo,sighandler handler)
- 作用:注册信号signo的信号处理函数handler
- 返回值:The signal() function returns
the previous value of the signal handler
, or SIG_ERR on error. - 第二个参数handler有两种形式:
形式1:SIG_ERR / SIG_IGN /SIG_DFL恢复默认行为
形式2:void handler(int signo)
示例代码—signal函数返回前一次的handler
void handler(int signo){
printf("++++++++++++++\n");
}
int main(){
__sighandler_t oldhandler=signal(SIGINT,handler);
if(oldhandler==SIG_ERR)
perror("signal error");
while(1){
if(getchar()=='q')
signal(SIGINT,oldhandler); //signal(SIGINT,SIG_DFL);
}
return 0;
}