在LINUX用户态的情况下,如果想要延时的话,用sleep是最合适的,但是,在有些情况下,需要更小单位的延时,ms us 也是要的。用循环获取到的延时是不精确的。
void delayms(const int ms)
{
struct timeval delay;
delay.tv_sec = ms / 1000;
delay.tv_usec = (ms % 1000 ) * 1000;
select(0, NULL, NULL, NULL, &delay);
}
本文探讨了在Linux用户态中,如何使用`select`和`struct timeval`实现毫秒级精确的延时控制,以替代`sleep`函数,尤其是在需要微秒级精度的场景下,提供了详细的代码示例和关键概念解析。
在LINUX用户态的情况下,如果想要延时的话,用sleep是最合适的,但是,在有些情况下,需要更小单位的延时,ms us 也是要的。用循环获取到的延时是不精确的。
void delayms(const int ms)
{
struct timeval delay;
delay.tv_sec = ms / 1000;
delay.tv_usec = (ms % 1000 ) * 1000;
select(0, NULL, NULL, NULL, &delay);
}
3557
435
1069

被折叠的 条评论
为什么被折叠?