【摘要】 函数原型
void(* signal(int sig,void(* func)(int)))(int);
1
指定使用sig指定的信号编号处理信号的方法。 参数func指定程序可以处理信号的三种方式之一:默认处理(SIG_DFL):信号由该特定信号的默认动作处理。 忽略信号(SIG_IGN):忽略信号,即使没有意义,代码执行仍将继续。 函数处理程序:定义一…
函数原型
void(* signal(int sig,void(* func)(int)))(int);
指定使用sig指定的信号编号处理信号的方法。 参数func指定程序可以处理信号的三种方式之一:
默认处理(SIG_DFL):信号由该特定信号的默认动作处理。
忽略信号(SIG_IGN):忽略信号,即使没有意义,代码执行仍将继续。
函数处理程序:定义一个特定的函数来处理信号。
常用的 sig 参数
常用的FUNC()参数
例子
signal(SIGSEGV, SIG_IGN);
程序定义了一个信号量,当出现这个信号量(非法内存访问)的时候,会执行SIG_IGN
即当我们非法内存访问的时候,会忽略此信号
2. 有时候Func这个参数 也可以是我们自定义的参数
signal(11, sigsegv_handler);
这里的11也代指 SIGSEGV
sigsegv_handler函数我们定义为:
程序定义了一个信号量,当出现这个信号量(非法内存访问)的时候,会执行sigsegv_handler函数
即当我们非法内存访问的时候,会将我们的flag通过标准错误打印出来(fflush(stderr))
文章来源: blog.csdn.net,作者:雷格西雷狗子,版权归原作者所有,如需转载,请联系作者。
原文链接:blog.csdn.net/weixin_45556441/article/details/116279144