linux在用户态的定时器
来源:互联网 发布:dota2比赛数据查询 编辑:程序博客网 时间:2024/05/16 06:56
1、alarm
unsigned int alarm(unsigned int seconds)
函数说明: alarm()用来设置信号SIGALRM在经过参数seconds指定的秒数后传送给目前的进程。
如果参数seconds为0,则之前设置的闹钟会被取消,并将剩下的时间返回。
void sigalrm_fn(int sig)
{
printf("alarm!\n");
alarm(2);
return;
}
int main(void)
{
signal(SIGALRM, sigalrm_fn);
alarm(1);
while(1) pause();
}
2、setitimer
int setitimer(int which, const struct itimerval *value, struct itimerval *ovalue));
which取值:
ITIMER_REAL : 以系统真实的时间来计算,它送出SIGALRM信号。
ITIMER_VIRTUAL : -以该进程在用户态下花费的时间来计算,它送出SIGVTALRM信号。
ITIMER_PROF : 以该进程在用户态下和内核态下所费的时间来计算,它送出SIGPROF信号。
struct itimerval {
struct timeval it_interval;
struct timeval it_value;
};
it_value是当前定时器剩下的时间。一旦it_value的值为0时,它会被设定为it_interval。
如果定时器到期,而且it_interval的值为0,则不会重新启动该定时器。
同样地,如果一个活动中的定时器的it_value被设为0,则定时器会停止运行,而且不会被重新启动。
如果ovalue的值不是NULL,则which类型的时间间隔定时器先前的值会被返回。
signal(SIGALRM, sigroutine);
signal(SIGVTALRM, sigroutine);
value.it_value.tv_sec = 1;
value.it_value.tv_usec = 0;
value.it_interval.tv_sec = 1;
value.it_interval.tv_usec = 0;
setitimer(ITIMER_REAL, &value, &ovalue);
value2.it_value.tv_sec = 0;
value2.it_value.tv_usec = 500000;
value2.it_interval.tv_sec = 0;
value2.it_interval.tv_usec = 500000;
setitimer(ITIMER_VIRTUAL, &value2, &ovalue);
- linux在用户态的定时器
- Linux 用户下定时器的实现
- linux用户层 定时器 的一些问题
- Linux用户态程序定时器——POSIX定时器
- linux 高精度定时器 hrtimer 用户空间的应用 man timer_create
- Linux用户态定时器用法以及犯错总结
- 等待定时器与用户定时器的区别
- 用户态下多定时器的实现
- 编写一个程序库,实现定时器的功能,它能为用户提供在同一进程中多次使用的定时器。
- Linux用户进程高精度定时器去抖动
- Linux定时器的实现
- linux定时器的使用
- linux定时器的使用
- linux定时器的使用
- linux定时器的使用
- Linux下的定时器
- Linux定时器的使用
- Linux定时器的用法
- 你应该更新的Java知识之构建工具:Gradle 和 Buildr
- swift 声明特性 类型特性
- makefile 自动处理头文件的依赖关系 (zz)
- Hadoop MapReduce 任务执行流程源代码详细解析
- 新浪粉丝服务平台教程二:消息收发
- linux在用户态的定时器
- android之handler做定时器,获取经纬度信息
- Ajax的基本使用
- 黑马程序员 -枚举
- ldc.i4.0
- 树莓派/Raspberry Pi + Debian 配置记录笔记
- 第六章、SpringMVC-注解式控制器详解-SpringMVC强大的数据绑定(1)
- 第一篇随便聊
- 鼠标移到图片上,图片变大显示,不是放大镜效果