如何在应用程序里实现一个最简单的定时器???

bladeboy 2003-10-09 05:55:55
大约1秒一次就够了
我用SIGALRM
这个信号好像太强了
信号来的时候,有的IO操作就会被返回比如GETCHAR()
有没有弱一点的办法?

...全文
90 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
bladeboy 2003-10-11
  • 打赏
  • 举报
回复
不行啊,yuanlei1978113()
用select延时我也知道,但这样不就得
一直死循环调用了吗?
我就想实现一个简单得timer,和windows得timer一样
简单,就是别象signal这么霸道就可以了
blh 2003-10-10
  • 打赏
  • 举报
回复
yuanlei1978113() :select调用顶多可以达到10ms
gettimeofday调用可以延时到1us,但浪费CPU
yuanlei1978113 2003-10-09
  • 打赏
  • 举报
回复
看看我给你封装的定时器,可以精确到微秒呢!!
不用客气了,都是同行拿去用吧,好用了给回个信!

#include <sys/select.h>
#include <stdio.h>
#include <stdlib.h>

void Timer(int sec, long usec)
{
struct timeval tvSelect;

tvSelect.tv_sec = sec;
tvSelect.tv_usec = usec;

select(FD_SETSIZE, NULL, NULL, NULL, &tvSelect);

};
hs_guanqi 2003-10-09
  • 打赏
  • 举报
回复
sleep就够了,误差不多

23,121

社区成员

发帖
与我相关
我的任务
社区描述
Linux/Unix社区 应用程序开发区
社区管理员
  • 应用程序开发区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧