10.3 信号_signal函数

来源:互联网 发布:数据猿 编辑:程序博客网 时间:2024/05/21 10:36
  • #include <signal.h>
  • void (*signal(int signo, void (*func)(int)))(int);

返回值:成功返回信号以前的处理配置,出错返回SIG_ERR

 

    信号机制最简单的接口是signal函数。signo是信号名。func的值是常量SIG_IGN、常量SIG_DFL或当接到此信号后要调用的函数的地址。如果指定SIG_IGN,则向内核表示忽略此信号(SIGKILL和SIGSTOP不能忽略);如果指定SIG_DFL,则表示接到此信号后的动作是系统默认动作;当指定函数地址时,则在信号发生是,调用该函数。

 

    从signal的这两个调用中也可以看到这种函数的限制:不改变信号的处理方式就不能确定信号的当前处理方式。

 

    当一个进程调用fork时,其子进程继承父进程的信号处理方式。因为子进程在开始时复制父进程的存储映像,所以信号捕捉函数的地址在子进程中是有意义的。