zoukankan      html  css  js  c++  java
  • alarm函数可以定时

    貌似是可以的,不过感觉好像这样用不是很好,最好还是用回timer_settimer一些列函数吧,不过既然开了头,就看下alarm怎么用吧。

    1. 所需头文件  #include<unistd.h>
     
    2. 定义函数  unsigned int alarm(unsigned int seconds);

        函数说明  alarm()用来设置信号SIGALRM在经过参数seconds指定的秒数后传送给目前的进程。

                     如果参数seconds 为0,则之前设置的闹钟会被取消,并将剩下的时间返回。

        返回值    返回之前闹钟的剩余秒数,如果之前未设闹钟则返回0。
     

    3. 代码

    #include<unistd.h>
    #include<signal.h>
    
    void handler() 
    {
        printf("Hello
    ");
        signal(SIGALRM,handler);    //让内核做好准备,一旦接受到SIGALARM信号,就执行handler
        alarm(5);
    }/*这段函数的执行时间不计算在for循环的时间之内*/
    
    void main()
    {
        int i;
        handler();
        for(i=1;i<21;i++) {
            printf("sleep %d ...
    ", i);
            sleep(1);
        }
    } 
    

      

    4. 效果

    刚开始在main中执行一次,然后每隔5秒执行一次handler()
    Hello
    sleep 1 ...
    sleep 2 ...
    sleep 3 ...
    sleep 4 ...
    sleep 5 ...
    Hello
    sleep 6 ...
    sleep 7 ...
    sleep 8 ...
    sleep 9 ...
    sleep 10 ...
    Hello
    

      

  • 相关阅读:
    vlan原理与配置
    路由协议-ospf
    路由协议-rip
    人品
    阿波罗礼赞
    跳石头
    FBI树
    方程求解
    循环比赛
    国王的游戏
  • 原文地址:https://www.cnblogs.com/yisonli/p/3446684.html
Copyright © 2011-2022 走看看