Linux定时器的使用(4)
来源:未知 责任编辑:责任编辑 发表时间:2015-10-08 14:16 点击:次
act.sa_handler = show_msg;
act.sa_flags = 0;
sigemptyset(&act.sa_mask);
sigaction(50, &act, NULL);
len = strlen(msg);
time(&lasttime);
while ( 1 )
{
time_t nowtime;
/*获取当前时间*/
time(&nowtime);
/*和上一次的时间做比较,如果大于等于2秒,则立刻发送信号*/
if (nowtime - lasttime >= 2)
{
/*向主进程发送信号,实际上是自己给自己发信号*/
sigqueue(getpid(), 50, tsval);
lasttime = nowtime;
}
}
return 0;
}
这个和上面不同之处在于,是自己手工计算时间差的,如果你想更精确的计算时间差,你可以把time 函数换成gettimeofday,这个可以精确到微妙。
上面介绍的几种定时方法各有千秋,在计时效率上、方法上和时间的精确度上也各有不同,采用哪种方法,就看你程序的需要。
相关新闻>>
最新推荐更多>>>
- 发表评论
-
- 最新评论 更多>>