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
    

      

  • 相关阅读:
    植物园偶遇一直喵
    植物园偶遇一直喵
    美食篇
    美食篇
    端午节路过南站
    端午节路过南站
    黄山云海
    黄山云海
    Android (1)
    树和树算法(1)
  • 原文地址:https://www.cnblogs.com/yisonli/p/3446684.html
Copyright © 2011-2022 走看看