Chinaunix首页 | 论坛 | 博客
  • 博客访问: 344791
  • 博文数量: 82
  • 博客积分: 2602
  • 博客等级: 少校
  • 技术积分: 660
  • 用 户 组: 普通用户
  • 注册时间: 2007-08-10 08:48
文章分类

全部博文(82)

文章存档

2008年(17)

2007年(65)

分类: C/C++

2007-09-07 10:28:01


alarm(设置信号传送闹钟)
相关函数
signal,sleep
表头文件
#include
定义函数
unsigned int alarm(unsigned int seconds);
函数说明
alarm()用来设置信号SIGALRM在经过参数seconds指定的秒数后传送给目前的进程。如果参数seconds 为0,则之前设置的闹钟会被取消,并将剩下的时间返回。
返回值

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

代码


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

main()
{
int i;
handler();
for(i=1;i<21;i++){
printf("sleep %d ...\n",i);
sleep(1);
}
}

 

结果:刚开始在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
sleep 11 ...
sleep 12 ...
sleep 13 ...
sleep 14 ...
sleep 15 ...
Hello
sleep 16 ...
sleep 17 ...
sleep 18 ...
sleep 19 ...
sleep 20 ...
Hello

阅读(3531) | 评论(0) | 转发(0) |
0

上一篇:TCP/IP协议简介

下一篇:用svn进行代码管理

给主人留下些什么吧!~~