Linux定时器——setitimer()
setitimer()是比较精准的定时器,是Linux的API
以下代码是个倒计时例子:
#include <signal.h>
#include <sys/time.h>
static int time_count=30;
static void sigalrm_handler(int sig)
{
time_count--;
printf("timer signal.. %d\n", time_count);
}
struct itimerval v; //定时器结构体
time_count=10; //再次初始化
signal(SIGALRM, sigalrm_handler);//绑定信号函数
v.it_value.tv_sec=1;
v.it_value.tv_usec=0;
v.it_interval.tv_sec=1;//间隔1s
v.it_interval.tv_usec=0;
setitimer(ITIMER_REAL,&v,NULL); //结构体关联,start
...
...
//=========结束此定时器=====================
v.it_value.tv_sec=0;
v.it_value.tv_usec=0;
v.it_interval.tv_sec=0;
v.it_interval.tv_usec=0;
setitimer(ITIMER_REAL,&v,NULL);
原理既是 1s发送SIGALRM信号一次,将其值置零即为关闭,不在发送信号
相关文档:
由于 Linux 良好的用户权限管理体系,病毒往往是 Linux 系统管理员最后才需要考虑的问题。以往,Linux 上的杀毒软件主要是为企业的邮件和文件服务器所设计的。如今,随着 Linux 桌面用户数量的增长,桌面用户在受益于 Linux 系统对病毒较强的天然免疫力的同时,也需要杀毒软件清理从网络或U盘带来的WIndows病毒。尽管那些 ......
在开发过程中,必然会出现多人同时工作、协着的情况,在嵌入式开发项目中更为平常,这样可以加快项目周期,为产品上市占得时间先机。目前,使用linux作为开发产品的操作系统情况越来越多,使用越来越广泛。为了交叉编译,为了最接近开发目标,我们一般都会自己搭建一台linux开发服务器。linux开发服务器 ......
我用的Java版本为1.4,用1.5的时候说是有不安全的操作,无法编译、运行。
下载最新版本,BRITE.tar.gz
$ gunzip BRITE.tar.gz
$ tar xvf BRITE.tar
$ cd BRITE/
$ make all
编译完成,运行BRITE
$ ./brite &
主要的问题 ......
我用的是 fedora 12 自待的jdk 1.6 在 /usr/lib/jvm/java-1.6.0-openjdk
第一步:把apache-tomcat-6.0.26.tar.gz解压后放到/usr/local/下重命名为apache-tomcat-6.0.26
第二步:在/etc/profile文件中适当的位置添加如下环境变量
CATALINA_HOME=/usr/local/apache-tomcat-6.0.26
CATALINA_BASE=/usr/local/apache-tomcat ......