linux下的C语言开发(定时器)
定时器是我们需要经常处理的一种资源。那Linux下面的定时器又是怎么一回事呢?其实,在linux里面有一种进程中信息传递的方法,那就是信号。这里的定时器就相当于系统每隔一段时间给进程发一个定时信号,我们所要做的就是定义一个信号处理函数。
- #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下面,创建进程是一件十分有意思的事情.我们都知道,进程是操作系统下面享有资源的基本单位.那么,在linux下面应该怎么创建进程呢?其实非常简单,一个fork函数就可以搞定了.但是,我们需要 ... 
- linux下的C语言开发
		在很多人的眼里,C语言和linux常常是分不开的.这其中的原因很多,其中最重要的一部分我认为是linux本身就是C语言的杰出作品.当然,linux操作系统本身对C语言的支持也是相当到位的.作为一个真正 ... 
- linux下的C语言开发 GDB的例子
		在很多人的眼里,C语言和linux常常是分不开的.这其中的原因很多,其中最重要的一部分我认为是linux本身就是C语言的杰出作品.当然,linux操作系统本身对C语言的支持也是相当到位的.作为一个真正 ... 
- linux下的C语言开发(网络编程)
		http://blog.csdn.net/feixiaoxing/article/details/7259675 [ 声明:版权所有,欢迎转载,请勿用于商业用途. 联系信箱:feixiaoxing ... 
- linux下的C语言开发(静态库/动态库)
		动态链接库不是Linux独有的特性,在windows下面也存在这样的特性.一般来说,windows下面的动态连接库是以*.dll作为结尾的,而linux下面的动态连接库是以*.so结尾的.和静态链接库 ... 
- linux下的C语言开发(gdb调试)
		原文: http://blog.csdn.net/feixiaoxing/article/details/7199643 用gdb调试多进程的程序会遇到困难,gdb只能跟踪一个进程(默认是跟踪父进程) ... 
- 在 Linux 下学习 C 语言有什么好处?
		作者:宅学部落链接:https://www.zhihu.com/question/23893390/answer/832610610来源:知乎著作权归作者所有.商业转载请联系作者获得授权,非商业转载请 ... 
- Linux学习心得之 Linux下命令行Android开发环境的搭建
		作者:枫雪庭 出处:http://www.cnblogs.com/FengXueTing-px/ 欢迎转载 Linux学习心得之 Linux下命令行Android开发环境的搭建 1. 前言2. Jav ... 
- Linux 下 expect 脚本语言中交互处理常用命令
		Linux 下 expect 脚本语言中交互处理常用命令 1. #!/usr/bin/expect 告诉操作系统脚本里的代码使用那一个 shell 来执行.这里的 expect 其实和 Linux 下 ... 
随机推荐
- C#NumberFormatInfo类
			aaarticlea/png;base64,iVBORw0KGgoAAAANSUhEUgAAA0sAAAD2CAIAAACImosXAAAgAElEQVR4nOy9V3Nk13X+vTt3owPSJJ ... 
- SQL-如何使用 MongoDB和PyMongo。
			先决条件 在开始之前,请确保已经安装了 PyMongo 发行版. 在 Python shell 中,下面的代码应该在不引发异常的情况下运行: >>> import pymongo 假 ... 
- 74-A/D指标,Accumulation/Distribution,积累/派发线,离散指标.(2015.7.1)
			A/D指标,Accumulation/Distribution 积累/派发线,离散指标 观井映天 2015.7.1 
- 笔记——python语言规范
			Lint 对你的代码运行pylint 定义: pylint是一个在Python源代码中查找bug的工具. 对于C和C++这样的不那么动态的(译者注: 原文是less dynamic)语言, 这些bug ... 
- docsearch & algolia
			docsearch & algolia The easiest way to add search to your documentation. https://community.algol ... 
- 创建Django项目(一)
			2013-07-24 23:20:58| 最近在学习Django项目的创建,主要的参考资料是:Djangobook 和 Django Project.这些日志用来记录自己的学习过程吧. ... 
- cogs——2419. [HZOI 2016]公路修建2
			2419. [HZOI 2016]公路修建2 ★☆ 输入文件:hzoi_road2.in 输出文件:hzoi_road2.out 简单对比时间限制:1 s 内存限制:128 MB [题 ... 
- Eclipse编辑YAML插件-YEdit
			官网:https://github.com/oyse/yedit 离线版本:(链接: https://pan.baidu.com/s/1b1j2gQ 密码: wyyb) 安装方法:直接复制JAR包到P ... 
- mysql你确定掌握的那些sql语句
			1.创建表 create table test(uid int not null,create_time timestamp default current_timestamp); 即:没有双引号,单 ... 
- UML中的四种关系总结
			UML中的关系主要包含四种:关联关系.依赖关系.泛化关系.实现关系.当中关联关系还包含聚合关系和组合关系. 1. 关联关系(Association) 关联关系式一种结构化的关系,是指一种对象和还有一种 ... 
