直接看代码
#include <stdio.h>
#include <signal.h>
typedef void (*signal_handler)(int); //定义函数指针
void heart_handler_fun(int signal_num)
{
alarm(30);//睡眠30S
printf("catch signal %d\n", signal_num);
}
int main()
{
printf("start signal\n");
signal_handler p_signal = heart_handler_fun;
signal(SIGALRM, p_signal);
alarm(30);//睡眠30S,触发signal SIGALRM
while(1);//一定要循环,要不然主线程退出,整个程序就退出了
return 0;
}