signal()函数用于设置某一信号的对应动作。
signal()函数 语法
int signal(int sig,sigfun fp);
参数sig为要被设置为处理函数的信号;
参数fp为指向信号所对应动作函数的指针。
signal()函数返回当前信号处理函数指针。
signal()函数 示例
本示例使用signal函数调用中断处理函数s1和s2,并输出相应的信息。其具体代码如下所示:
#include<stdio.h>
#include<signal.h>
void s1();
void s2();
int main(void)
{
signal(SIGINT,s1);/*设置信号定义动作*/
printf("please enter ctrl+c for interrupt ");/*输出提示信息*/
getchar();/*接受字符*/
signal(SIGSEGV,s2);/*设置信号定义动作*/
printf("please enter any key for a interrupt ");/*输出提示信息*/
getchar();/*接受字符*/
raise(SIGSEGV);/*发送信号*/
}
void s1()/*自定义函数*/
{
printf("This is a SIGINF interrupt! ");/*输出信息*/
}
void s2()/*自定义函数*/
{
printf("This is a SIGSEGV interrupt! ");/*输出信息*/
}
运行结果如图所示。