作者:张裕鹏 日期:2021-6-26
目前在 Linux 下常见的休眠函数有:
#include <unistd.h>
unsigned int sleep(unsigned int seconds); // 秒
int usleep(useconds_t usec); // 微秒
细心的朋友可能会发现,好像缺少了毫秒的实现函数。其实没关系,我们可以自己来实现一个毫秒
void msleep(unsigned long ms_second)
{
unsigned long s_time = 0;
unsigned long m_time = 0;
s_time = ms_second / 1000;
m_time = ms_second % 1000;
if(s_time){
sleep(s_time);
}
if(m_time){
usleep(m_time * 1000);
}
}
有一个细节需要注意一下,就是 sleep 函数是可以被中断的,也就是说如果在睡眠的过程中(睡眠还未结束),一旦发生中断,则会执行下一条语句,不再睡眠。具体内容可以参考文章:linux中sleep函数的使用和总结。
另外,在 Linux 系统下可以通过命令:man 3 sleep
查看对应的 sleep 函数手册。usleep 也是同理!
希望本文对你有帮助。