当前位置: 技术问答>linux和unix
关于signal函数的问题
来源: 互联网 发布时间:2016-03-22
本文导语: 下面一段代码: #include #include #include void ouch(int sig) //这里的函数带了个整型参数 { printf("OUCH! - Igot signal %dn",sig);//这里程序是如何获得sig的值的? signal(SIGINT,SIG_DFL); } int main() { signal(SIGINT,o...
下面一段代码:
#include
#include
#include
void ouch(int sig) //这里的函数带了个整型参数
{
printf("OUCH! - Igot signal %dn",sig);//这里程序是如何获得sig的值的?
signal(SIGINT,SIG_DFL);
}
int main()
{
signal(SIGINT,ouch);//我这里调用的时候ouch并没有带参数,为什么可以啊?
while(1)
{
printf("Hello World!n");
sleep(1);
}
}
|
#include
void (*signal(int signo, void (*func)(int))(int);
这是singnal函数声明,它的第二个参数是个函数指针,形式为:void (*func)(int)
具体的可以看看C语言的函数指针部分
void (*signal(int signo, void (*func)(int))(int);
这是singnal函数声明,它的第二个参数是个函数指针,形式为:void (*func)(int)
具体的可以看看C语言的函数指针部分
|
signal只是设置了一个信号到来时的处理动作,并不是真正的调用ouch函数。
ouch是有系统内核调用的,sig是有系统提供的参数,是触发该函数响应的当前的信号值。