« | July 2025 | » | 日 | 一 | 二 | 三 | 四 | 五 | 六 | | | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | | | |
| 公告 |
|
Blog信息 |
blog名称:FoxWolf 日志总数:127 评论数量:246 留言数量:0 访问次数:850064 建立时间:2006年5月31日 |

| |
[Linux学习]Linux系统调用--getitimer/setitimer函数详解 文章收藏, 软件技术, 电脑与网络
FoxWolf 发表于 2008/7/4 16:13:22 |
【getitimer/setitimer系统调用】 功能描述:获取或设定间歇计时器的值。系统为进程提供三种类型的计时器,每一类以不同的时间域递减其值。当计时器超时,信号被发送到进程,之后计时器重启动。
用法: #include <sys/time.h>
int getitimer(int which, struct itimerval *value);int setitimer(int which, const struct itimerval *value, struct itimerval *ovalue);
参数: which:间歇计时器类型,有三种选择
ITIMER_REAL //数值为0,计时器的值实时递减,发送的信号是SIGALRM。ITIMER_VIRTUAL //数值为1,进程执行时递减计时器的值,发送的信号是SIGVTALRM。ITIMER_PROF //数值为2,进程和系统执行时都递减计时器的值,发送的信号是SIGPROF。
value,ovalue:时间参数,原型如下
struct itimerval { struct timeval it_interval; /* 计时器重启动的间歇值 */ struct timeval it_value; /* 计时器安装后首先启动的初始值 */};
我的备注:
itimerval结构中的it_value是减少的时间,当这个值为0的时候就发出相应的信号了. 然后再将it_value设置为it_interval值. 也就是先处理it_value中设置的值,为0后发送信号(根据which来判断发送什么信号),之后都是根据it_interval的值发送信号。若it_value和it_interval都为0,也就没有相应的信号产生了
struct timeval { long tv_sec; /* 秒 */ long tv_usec; /* 微妙(1/1000000) */};
getitimer()用计时器的当前值填写value指向的结构体。setitimer()将value指向的结构体设为计时器的当前值,如果ovalue不是NULL,将返回计时器原有值。
返回说明: 成功执行时,返回0。失败返回-1,errno被设为以下的某个值 EFAULT:value或ovalue是不有效的指针EINVAL:其值不是ITIMER_REAL,ITIMER_VIRTUAL 或 ITIMER_PROF之一
我的测试程序例子:500)this.width=500'>mysetiitimer.rar
原文地址 http://club.cn.yahoo.com/bbs/threadview/1200062866_125__pn.html |
|
|