当前位置: 技术问答>linux和unix
谁给解释下这个signal函数
来源: 互联网 发布时间:2016-07-22
本文导语: 什么意思,该如何运行。 void my_func(int sign_no) { if(sign_no == SIGINT) { printf("I have get SIGINTn"); } else if(sign_no==SIGQUIT) { printf("I have get SIGQUITn"); } else i...
什么意思,该如何运行。
void my_func(int sign_no)
{
if(sign_no == SIGINT)
{
printf("I have get SIGINTn");
}
else if(sign_no==SIGQUIT)
{
printf("I have get SIGQUITn");
}
else if(sign_no==SIGTSTP)
{
printf("I have get SIGTSTPn");
}
}
int main()
{
printf("Waiting for signal SIGINT or SIGQUIT!n");
signal(SIGINT,my_func);
signal(SIGQUIT,my_func);
pause();
exit(0);
}
|
signal(SIGINT,my_func);
signal(SIGQUIT,my_func);
信号是操作系统级别的软件中断.别把它看的过于神秘,使用起来非常简单.
操作系统定义了各种类型的信号,比如提到的SIGINT,SIGQUIT.signal函数只不过给这些信号注册了信号处理函数而已.当SIGINT信号来的时候,就执行被注册的my_func函数,就这简单.
pause的作用是让你有时间测试这个例子.
signal(SIGQUIT,my_func);
信号是操作系统级别的软件中断.别把它看的过于神秘,使用起来非常简单.
操作系统定义了各种类型的信号,比如提到的SIGINT,SIGQUIT.signal函数只不过给这些信号注册了信号处理函数而已.当SIGINT信号来的时候,就执行被注册的my_func函数,就这简单.
pause的作用是让你有时间测试这个例子.
|
signal(SIGINT,my_func);
绑定my_func函数,一旦该进程接受到SIGINT信号,就立刻执行my_func函数。
绑定my_func函数,一旦该进程接受到SIGINT信号,就立刻执行my_func函数。
|
第一个问题:
SIGINT,通常是在终端按下ctrl+c
SIGQUIT,通常是在终端按下ctrl+
书上,文档里都有提~~~
SIGINT,通常是在终端按下ctrl+c
SIGQUIT,通常是在终端按下ctrl+
书上,文档里都有提~~~