在编程中,很常见的需要程序暂停一段时间,这就需要用到 sleep 函数。但 sleep 函数并不是一个标准函数,在不同的操作系统下有不同的实现,
在 Linux 下,
#include <unistd.h>
unsigned int sleep(unsigned int seconds)
sleep(10)就是休眠 10s
在Windows下,
#include <windows.h>
void Sleep(DWORD dwMilliseconds)
Sleep (1000) 就是休眠 1000ms,也就是 1s
跨平台形式
#ifdef __linux__
#include <unistd.h>
#elif _WIN32
#include <windows.h>
#define sleep(x) Sleep((x)*1000)
#endif // __linux__
void sleepSeconds(int seconds);
void sleepSeconds(int seconds)
{
//printf("I'm going to sleep....\n");
sleep(seconds);
//printf("I've slept for %d s.\n", seconds);
}
Ref
- linux和windows下,C/C++的sleep函数 : 两个系统下的sleep 函数比较
- Linux 下 sleep()的一个简单实现
- LINUX下实现sleep: 详细的原理、实现和优化