美文网首页
linux c alarm定时器

linux c alarm定时器

作者: 一路向后 | 来源:发表于2021-08-09 21:35 被阅读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

相关文章

网友评论

      本文标题:linux c alarm定时器

      本文链接:https://www.haomeiwen.com/subject/gcjtbltx.html