美文网首页
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