linux c alarm定时器

2021-08-09  本文已影响0人  一路向后

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
上一篇下一篇

猜你喜欢

热点阅读