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

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

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

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

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

3. 代码

  1. #include<unistd.h>
  2. #include<signal.h>
  3.  
  4. void handler()
  5. {
  6. printf("Hello\n");
  7. signal(SIGALRM,handler); //让内核做好准备,一旦接受到SIGALARM信号,就执行handler
  8. alarm(5);
  9. }/*这段函数的执行时间不计算在for循环的时间之内*/
  10.  
  11. void main()
  12. {
  13. int i;
  14. handler();
  15. for(i=1;i<21;i++) {
  16. printf("sleep %d ...\n", i);
  17. sleep(1);
  18. }
  19. }

  

4. 效果

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

  

alarm函数可以定时的更多相关文章

  1. 三十一、Linux 进程与信号——SIGCHLD 信号、kill和raise函数以及alarm函数

    31.1 SIGCHLD 信号 子进程状态发生变化(子进程结束)产生该信号,父进程需要使用 wait 调用来等待子进程结束并回收它. 避免僵尸进程 #include <stdio.h> # ...

  2. alarm()函数的使用总结

    alarm()函数说明 1.引用头文件:#include <unistd.h>; 2.函数标准式:unsigned int alarm(unsigned int seconds); 3.功 ...

  3. alarm函数

    alarm函数 设置定时器(闹钟).在指定seconds后,内核会给当前进程发送14)SIGALRM信号.进程收到该信号,默认动作终止. 每个进程都有且只有唯一个定时器. unsigned int a ...

  4. linux C之alarm函数 转

    原文出处:http://blog.sina.com.cn/s/blog_6a1837e90100uhl3.html alarm也称为闹钟函数,alarm()用来设置信号SIGALRM在经过参数seco ...

  5. Android通过百度地图API用Service和Alarm在后台定时获取地理位置信息

    本文主要介绍了Android项目集成百度地图API,使用AlarmManager定时调用Service,在Service中请求坐标更新,并通过坐标得到省.市和县三级地理位置信息的方法. 程序结构很简单 ...

  6. linux中alarm函数和pause函数详解实例

    alarm(time);执行之后告诉内核,让内核在time秒时间之后向该进程发送一个定时信号,然后该进程捕获该信号并处理:pause()函数使该进程暂停让出CPU,但是该函数的暂停和前面的那个slee ...

  7. linux alarm函数解除read write等函数的阻塞

    看到apue的第十章,说到alarm,pause可以实现sleep,可以让某些一直阻塞的函数超时,例如read,write.代码如下: static void sig_alrm(int signo) ...

  8. 关于alarm函数

    #include<unistd.h> #include<signal.h> void handler() { printf("Hello\n"); sign ...

  9. 封装一些常用的js工具函数-不定时更新(希望大家积极留言,反馈bug^_^)

    /*华丽------------------------------------------------------------------------------------------------ ...

随机推荐

  1. java运算

    (一) 截图: 程序: import javax.swing.JOptionPane; public class Addition { public static void main (String ...

  2. hdu 1232畅通工程

    Problem Description 某省调查城镇交通状况,得到现有城镇道路统计表,表中列出了每条道路直接连通的城镇.省政府"畅通工程"的目标是使全省任何两个城镇间都可以实现交通 ...

  3. (原)torch中显示nn.Sequential()网络的详细情况

    转载请注明出处: http://www.cnblogs.com/darkknightzh/p/6065526.html 本部分多试几次就可以弄得清每一层具体怎么访问了. step1. 网络定义如下: ...

  4. PAT 65. A+B and C (64bit) (20)

    题目链接:http://pat.zju.edu.cn/contests/pat-a-practise/1065 思路分析: 1)对a+b造成的long long 类型的数据溢出进行特殊处理: a> ...

  5. 浅析Javascript原型继承(转)

    引自: http://blog.csdn.net/kittyjie/article/details/4380918 原作者解释的浅显易懂,非常不错的JavaScript prototype总结 JS没 ...

  6. ldd命令--查看命令依赖的库文件

    .在制作自己的发行版时经常需要判断某条命令需要哪些共享库文件的支持,以确保指定的命令在独立的系统内可以可靠的运行:在Linux环境下通过ldd命令即可实现,在终端下执行:ldd /bin/ls //l ...

  7. content的定义

    http://www.myexception.cn/HTML-CSS/1472528.html http://stackoverflow.com/questions/2770681/css-conte ...

  8. hdu 1116 Play on Words

    http://acm.hdu.edu.cn/showproblem.php?pid=1116 欧拉通路和欧拉回路 #include <cstdio> #include <cstrin ...

  9. 《Programming WPF》翻译 第7章 2.图形

    原文:<Programming WPF>翻译 第7章 2.图形 图形时绘图的基础,代表用户界面树的元素.WPF支持多种不同的形状,并为它们每一个都提供了元素类型. 7.2.1基本图形类 在 ...

  10. 网站10大致命SEO错误

    1.关键字堆砌 我想不出有比胡乱将这些复制的内容放在网站上更差劲的事情了.网站复制一遍又一遍,你肯定也不想看到这么差劲的网站复制. 你在明白我在做什么吗?我并不是一个那么差劲的编辑者,我只是想说明一个 ...