1.源码实现
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <sys/types.h>
#include <unistd.h>
#include <signal.h>
static int counter = 0;
void sig_alarm_handler(int sig_num)
{
printf("%s, signal number: %d, counter: %d\n", __FUNCTION__, sig_num, counter);
counter++;
alarm(2);
}
int main()
{
printf("hello world!\n");
printf("pid number: %d\n", getpid());
counter = 0;
//拦截定时器信号
signal(SIGALRM, sig_alarm_handler);
//设定定时器
alarm(2);
while(1)
{
pause();
}
return 0;
}
2.编译源码
$ gcc -o example example.c
3.运行及其结果
$ ./example
hello world!
pid number: 4168
sig_alarm_handler, signal number: 14, counter: 0
sig_alarm_handler, signal number: 14, counter: 1
sig_alarm_handler, signal number: 14, counter: 2
sig_alarm_handler, signal number: 14, counter: 3
sig_alarm_handler, signal number: 14, counter: 4
sig_alarm_handler, signal number: 14, counter: 5
sig_alarm_handler, signal number: 14, counter: 6
sig_alarm_handler, signal number: 14, counter: 7
网友评论