程式碼中呼叫 sleep(5000) 導致程式「卡住」5000 秒(約 1.4 小時),而非預期的 5 秒。
sleep() 單位為秒(POSIX / Windows 皆同)。sleep(5000) = 睡眠 5000 秒。| 需求 | 函式 | 標頭檔 | 範例 |
|---|---|---|---|
| 秒級 | sleep(5) | <unistd.h> (Linux) / <windows.h> (Windows) | 睡 5 秒 |
| 毫秒級 | usleep(5000000) (Linux) / Sleep(5000) (Windows) | <unistd.h> / <windows.h> | 睡 5 秒 |
| 跨平台 C++11 | std::this_thread::sleep_for(5s) | <thread>, <chrono> | 睡 5 秒 |
搞清 sleep 單位,選用現代工具鏈,能省去大量莫名其妙的「程式跑不動」問題。