linux下的C语言开发(定时器)
2015-10-15 14:33
495 查看
定时器是我们需要经常处理的一种资源。那linux下面的定时器又是怎么一回事呢?其实,在linux里面有一种进程中信息传递的方法,那就是信号。这里的定时器就相当于系统每隔一段时间给进程发一个定时信号,我们所要做的就是定义一个信号处理函数。
[cpp] view
plaincopy
#include <stdio.h>
#include <time.h>
#include <sys/time.h>
#include <stdlib.h>
#include <signal.h>
static int 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)
{
count ++;
printf("%d\n", count);
}
int main()
{
signal(SIGALRM, signal_handler);
set_timer();
while(count < 10000);
exit(0);
return 1;
}
[cpp] view
plaincopy
#include <stdio.h>
#include <time.h>
#include <sys/time.h>
#include <stdlib.h>
#include <signal.h>
static int 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)
{
count ++;
printf("%d\n", count);
}
int main()
{
signal(SIGALRM, signal_handler);
set_timer();
while(count < 10000);
exit(0);
return 1;
}
相关文章推荐
- linux下的C语言开发(动态库) 转载加原创
- linux下的C语言开发(静态库) 转载加原创
- linux下的C语言开发(gdb调试)
- linux下的C语言开发(makefile编写)
- Linux命令TR
- linux下的C语言开发(开篇)
- Android源码编译及替换成自己编译的linux内核
- linux 下配置 MAVEN
- Linux文件权限
- linux下面的df命令
- Linux进程实践(2) --僵尸进程与文件共享
- linux文件类型
- Linux 中 CURL常用命令详解
- linux下面的挂载点讲解
- Linux Frame Buffer 驱动
- 14行脚本配置Linux下一个Java环境变量
- Linux学习 -- 日志管理
- linux设备驱动归纳总结(三):3面向对象思想和lseek、container_of、write、read 【转】
- CentOs 编译php 遇到的一些问题
- I.MX6 linux kernel编译错误处理