没有合适的资源?快使用搜索试试~ 我知道了~
linux定时器例子
3星 · 超过75%的资源 需积分: 9 14 下载量 36 浏览量
2011-03-08
23:27:14
上传
评论
收藏 15KB TXT 举报
温馨提示
试读
28页
linux定时器例子linux定时器例子linux定时器例子
资源推荐
资源详情
资源评论
linux定时器的使用 使用定时器的目的无非是为了周期性的执行某一任务,或者是到了一个指定时间去执行某一个任务。要达到这一目的,一般有两个常见的比较有效的方法。一个是用linux内部的三个定时器,另一个是用sleep, usleep函数让进程睡眠一段时间,其实,还有一个方法,那就是用gettimeofday, difftime等自己来计算时间间隔,然后时间到了就执行某一任务,但是这种方法效率低,所以不常用。
首先来看看linux操作系统为每一个进程提供的3个内部计时器。
Svn8.Com
ITIMER_REAL: 给一个指定的时间间隔,按照实际的时间来减少这个计数,当时间间隔为0的时候发出SIGALRM信号
参考资料:www.svn8.com
ITIMER_VIRTUAL: 给定一个时间间隔,当进程执行的时候才减少计数,时间间隔为0的时候发出SIGVTALRM信号
参考资料:www.svn8.com
ITIMER_PROF: 给定一个时间间隔,当进程执行或者是系统为进程调度的时候,减少计数,时间到了,发出SIGPROF信号,这个和ITIMER_VIRTUAL联合,常用来计算系统内核时间和用户时间。 Svn8.Com
用到的函数有:
Svn8.Com
#include <sys/time.h> Svn8.Com
int getitimer(int which, struct itimerval *value); 参考资料:www.svn8.com
int setitimer(int which, struct itimerval*newvalue, struct itimerval* oldvalue);
参考资料:www.svn8.com
首先来看看linux操作系统为每一个进程提供的3个内部计时器。
Svn8.Com
ITIMER_REAL: 给一个指定的时间间隔,按照实际的时间来减少这个计数,当时间间隔为0的时候发出SIGALRM信号
参考资料:www.svn8.com
ITIMER_VIRTUAL: 给定一个时间间隔,当进程执行的时候才减少计数,时间间隔为0的时候发出SIGVTALRM信号
参考资料:www.svn8.com
ITIMER_PROF: 给定一个时间间隔,当进程执行或者是系统为进程调度的时候,减少计数,时间到了,发出SIGPROF信号,这个和ITIMER_VIRTUAL联合,常用来计算系统内核时间和用户时间。 Svn8.Com
用到的函数有:
Svn8.Com
#include <sys/time.h> Svn8.Com
int getitimer(int which, struct itimerval *value); 参考资料:www.svn8.com
int setitimer(int which, struct itimerval*newvalue, struct itimerval* oldvalue);
参考资料:www.svn8.com
strcut timeval
Www.Svn8.Com
{ Svn8.Com
long tv_sec; /*秒*/ Svn中文网
long tv_usec; /*微秒*/ Svn8.Com
}; 参考资料:www.svn8.com
struct itimerval Svn中文网
{ Bbs.Svn8.Com
struct timeval it_interval; /*时间间隔*/ Www.Svn8.Com
struct timeval it_value; /*当前时间计数*/
Svn8.Com
}; 参考资料:www.svn8.com
it_interval用来指定每隔多长时间执行任务, it_value用来保存当前时间离执行任务还有多长时间。比如说, 你指定it_interval为2秒(微秒为0),开始的时候我们把it_value的时间也设定为2秒(微秒为0),当过了一秒, it_value就减少一个为1, 再过1秒,则it_value又减少1,变为0,这个时候发出信号(告诉用户时间到了,可以执行任务了),并且系统自动把it_value的时间重置为it_interval的值,即2秒,再重新计数。
Svn中文网
为了帮助你理解这个问题,我们来看一个例子:
Www.Svn8.Com
{ Svn8.Com
long tv_sec; /*秒*/ Svn中文网
long tv_usec; /*微秒*/ Svn8.Com
}; 参考资料:www.svn8.com
struct itimerval Svn中文网
{ Bbs.Svn8.Com
struct timeval it_interval; /*时间间隔*/ Www.Svn8.Com
struct timeval it_value; /*当前时间计数*/
Svn8.Com
}; 参考资料:www.svn8.com
it_interval用来指定每隔多长时间执行任务, it_value用来保存当前时间离执行任务还有多长时间。比如说, 你指定it_interval为2秒(微秒为0),开始的时候我们把it_value的时间也设定为2秒(微秒为0),当过了一秒, it_value就减少一个为1, 再过1秒,则it_value又减少1,变为0,这个时候发出信号(告诉用户时间到了,可以执行任务了),并且系统自动把it_value的时间重置为it_interval的值,即2秒,再重新计数。
Svn中文网
为了帮助你理解这个问题,我们来看一个例子:
剩余27页未读,继续阅读
资源评论
- lxting212012-09-28只是文本说明,这种资料网上随便一搜都是!
liZZZAAA
- 粉丝: 1
- 资源: 25
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功