signal函数的定义问题
signal函数原型:
void (*signal(int sig, void (*handler)(int)))(int)
可以用下面两句替换:
typedef void (*HANDLER)(int);
HANDLER signal(int, HANDLER);
调用signal函数的例子:
#include <unistd.h>
#include <signal.h>
void handler(int sig)
{
printf("%d\n", sig);
printf("hello\n");
}
int main()
{
int i;
signal(SIGALRM, handler);
alarm(5);
for (i = 1; i < 7; i++)
{
printf("sleep %d ...\n", i);
sleep(1);
}
return 0;
}
中间“signal(int sig, void (*handler)(int))”返回一个指向void (*handler)(int
)函数的指针。
这里不明白的是,最后一个(int),这个参数应该是signal返回的指针指向的函数的
参数,那么什么地方给这个参数赋值了呢?(signal函数调用的时候只给自己的两个参
数赋值了,那最后面的那个参数,是怎么赋值的?)