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\n");

    signal(SIGALRM,handler);    //让内核做好准备,一旦接受到SIGALARM信号,就执行handler

    alarm(5);

}/*这段函数的执行时间不计算在for循环的时间之内*/



void main()

{

    int i;

    handler();

    for(i=1;i<21;i++) {

        printf("sleep %d ...\n", 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

  

你可能感兴趣的:(ARM)