C语言 信号处理机制
2016-09-07 09:44
232 查看
C语言中信号标示一种时间,它可能异步地发生,也就是并不与城市执行过程中的任何事件保持同步,如果程序中未设置该信号的处理函数,则选择缺省方式---大部分为终止程序运行。
信号头文件<signal.h>
同样可以显示引发一个信号: int raise(int sig);
指定希望采取的措施: void (* signal(int sig, void (* handler) (int) ) )(int);
去除返回值来看: signal(int sig, void (* handler) (int) ) 参数1:int 型,信号类型 参数2:返回值为void 参数为int,描述想要处理的信号类型,可以为多个或运算结合起来的。
返回值: void (* signal () )(int) 为该信号以前的处理函数
另外两个宏作为signal函数的第二个参数, SIG_DFL 恢复对该信号的缺省反应,SIG_IGN使该信号被忽略。
当信号处理函数处理完成之后,返回触发点。并且在返回之前需要重新调用signal函数重新设置信号处理函数。
volatile数据:防止以一种可能修改程序含义的方式优化程序。如
if(A1)
{
B1;
}
if(A1)
{
B2;
}
但是程序可能优化为
if(A1)
{
B1;B2;
}
但是信号处理函数可能修改A1的值
信号头文件<signal.h>
同样可以显示引发一个信号: int raise(int sig);
指定希望采取的措施: void (* signal(int sig, void (* handler) (int) ) )(int);
去除返回值来看: signal(int sig, void (* handler) (int) ) 参数1:int 型,信号类型 参数2:返回值为void 参数为int,描述想要处理的信号类型,可以为多个或运算结合起来的。
返回值: void (* signal () )(int) 为该信号以前的处理函数
另外两个宏作为signal函数的第二个参数, SIG_DFL 恢复对该信号的缺省反应,SIG_IGN使该信号被忽略。
当信号处理函数处理完成之后,返回触发点。并且在返回之前需要重新调用signal函数重新设置信号处理函数。
volatile数据:防止以一种可能修改程序含义的方式优化程序。如
if(A1)
{
B1;
}
if(A1)
{
B2;
}
但是程序可能优化为
if(A1)
{
B1;B2;
}
但是信号处理函数可能修改A1的值
相关文章推荐
- Linux下C语言开发(信号signal处理机制)
- 转贴 C语言中一种优雅的异常处理机制
- Linux信号signal处理机制
- linux 信号signal处理机制(一)
- unix中的信号处理机制
- Ice笔记--Ice信号处理机制
- fork exec对子进程继承父进程信号处理机制的影响--APUE
- linux下的C语言开发(信号处理)
- Linux 信号signal处理机制
- Linux 信号signal处理机制
- linux信号signal处理机制
- Linux信号signal处理机制
- Linux 信号signal处理机制
- Linux 信号signal处理机制
- Linux 信号signal处理机制
- Linux信号signal处理机制
- 全面了解setjmp与longjmp(C语言异常处理机制)
- C语言中一种优雅的异常处理机制
- Linux 信号signal处理机制
- C语言异常处理机制——为您的C程序添加异常处理