作者:张裕鹏 日期: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 也是同理!
希望本文对你有帮助。
