编写一个程序(库),实现定时器(计时器)的功能,它能为用户提供在同一进程中多次使用的定时器。这里要求用信号来实现。 示例代码如下: #include <stdio.h> #include <time.h> #include <sys/time.h> #include <stdlib.h> #include <signal.h> static int time_count = 0; static struct itimerval oldtv; void set_timer() { struct itimerval itv; itv.it_interval.tv_sec = 1; itv.it_interval.tv_usec = 0; itv.it_value.tv_sec = 1; itv.it_value.tv_usec = 0; setitimer(ITIMER_REAL, &itv, &oldtv); } void signal_handler(int m) { time_count ++; printf("%d\n", time_count); } int main() { signal(SIGALRM, signal_handler); set_timer(); while(1){ if(time_count==5) { printf("time_count = 5\n"); time_count=0; } } return 1; }
Linux C语言的定时器使用方法
原创PlayWithYou 博主文章分类:C/C++ ©著作权
©著作权归作者所有:来自51CTO博客作者PlayWithYou的原创作品,请联系作者获取转载授权,否则将追究法律责任
上一篇:C语言中结构体参数变量的传递
提问和评论都可以,用心的回复会被更多人看到
评论
发布评论
相关文章
-
C# .net 定时器,多线程实现定时器
用多线程实现定时器的功能利用了Thread Sleep写了个死循环[code="c#"]using System;using S
多线程 thread sleep 定时器 System -
C# WPF定时器
WPF定时器,C# DispatcherTimer,WPF 定时刷新
WPF定时器 C# DispatcherTimer WPF 定时刷新 -
java 定时器 跳出定时器 java定时器暂停
一、定时器定时器在操作系统中地位很高,可以用来控制一切周期性行为。定时器采用中断的形式,工作原理如下图: 二、定时器优化以前我在做单片机项目的时候,总感觉定时器中断数量太少(一般是两个),通过这次《30天》操作系统的学习,我才意识到不是定时器少,而是自己的编程思路有问题。理论上讲,你可以实现任何时间粒度的定时器中断编程,无非就是在基本时钟中断频率的基础上用倍数来获取任意时间间隔
java 定时器 跳出定时器 java定时器的使用(timer) 在定时器中返回给视图的值 时间间隔 图层