在solaris中怎样使ualarm或usleep最小延迟时间小于20ms?

nhgw 2003-02-18 08:39:59
我看到solaris可以每10ms或1ms产生一次中断,谁知道怎样设置或编程可以使ualarm或usleep最小延迟时间达到10ms左右。
...全文
182 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
CSwain 2003-09-01
  • 打赏
  • 举报
回复

pselect我使了一下,大概可以精确到100微秒,但我不知道我用的正确不正确:

while (1)
{
if (pselect(0, NULL, NULL, NULL, &tv) == 0)
{
break;
}
}
linaxing 2003-08-26
  • 打赏
  • 举报
回复
POSIX中新定义了一个pselect(),据说可精确到微妙级.
CSwain 2003-08-26
  • 打赏
  • 举报
回复
是不行!
nhgw 2003-02-19
  • 打赏
  • 举报
回复
不行,还是20ms。
blh 2003-02-18
  • 打赏
  • 举报
回复
试试下面的代码,可以精确到10毫秒:
#include <stdio.h>
#include <sys/select.h>
#include <errno.h>

void sleep10ms(int ms)
{
struct timeval tv;

tv.tv_sec = ms / 1000;
tv.tv_usec = (ms % 1000) * 1000;
while ((select(0, NULL, NULL, NULL, &tv) == -1) && (errno == EINTR));
}

23,222

社区成员

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

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