C/C++ sleep 用法與範例

本篇 ShengYu 介紹 Windows/Linux/Unix 平台 C/C++ sleep 函式用法與範例,sleep 就是讓程式暫停執行一段時間,各平台的 sleep 函式名稱與使用方法不盡相同,將會在本篇一一說明,

在 Windows 平台的 Sleep (毫秒)

在 Windows 平台的 Sleep() 的時間單位是毫秒(ms / millisecond),所以要延遲1秒的話就是1000毫秒,寫法如下,

1
2
3
#include <windows.h>
// ...
Sleep(1000); // 1s

在 Linux/Unix 平台的 sleep (秒)

在 Linux / Unix 平台的 sleep() 的時間單位是秒(s / second),寫法如下,

1
2
3
#include <unistd.h>
// ...
sleep(1); // 1s

在 Linux/Unix 平台的 usleep (微秒)

承上例,那麼在 Linux / Unix 平台下想要 sleep 的時間單位是秒級以下呢?
Linux / Unix 平台下有個 usleep() 函式,usleep 的時間單位是微秒(us / microsecond),寫法如下,

1
2
3
#include <unistd.h>
// ...
usleep(1000*1000); // 1s

另外 Linux/Unix 平台還有 nanosleep() 函式,時間單位為納秒 (ns / nanosecond),關於這部分下次我再寫一篇給大家講解,

C++11 的 sleep_for

跨平台開發的話以 C++11 所提供的 sleep_for 最為方便,現今編譯器已普遍支援,寫法如下,提供了各種時間單位,

1
2
3
4
5
6
7
8
9
10
#include <thread>
#include <chrono>
// ...
std::this_thread::sleep_for(std::chrono::seconds(1)); // 1s
// or
std::this_thread::sleep_for(std::chrono::milliseconds(1000)); // 1s
// or
std::this_thread::sleep_for(std::chrono::microseconds(1000*1000)); // 1s
// or
std::this_thread::sleep_for(std::chrono::nanoseconds(1000*1000*1000)); // 1s

其它相關文章推薦
C/C++ 新手入門教學懶人包
std::this_thread::sleep_for 用法與範例