複製鏈接
請複製以下鏈接發送給好友

Sleep函數

鎖定
Sleep函數可以使計算機程序(進程,任務或線程)進入休眠,使其在一段時間內處於非活動狀態。當函數設定的計時器到期,或者接收到信號、程序發生中斷都會導致程序繼續執行。
中文名
Sleep函數
外文名
Sleep Function
功 能
執行掛起一段時間
用 法
void Sleep(DWORD ms);
單    位
毫秒
系    統
Windows、Linux

Sleep函數用法

sleep()函數的調用需要一個時間作為參數,代表程序執行掛起的時間間隔。通常參數的單位是秒,但在一些更加精確的操作系統中能以毫秒甚至是微秒為單位。 [1] 

Sleep函數Windows系統

在Windows操作系統中,sleep()函數需要一個以毫秒為單位的參數代表程序掛起時長,sleep()函數包含在kernel32.dll動態鏈接庫中,但在批處理文件中沒有可以直接運行的sleep()函數。可以在如Windows 2003資源包等Windows工具集中找到sleep()函數。

Sleep函數Unix系統

在Unix類的操作系統中,調用sleep()函數需要一個以秒為單位的參數,需要更精確的時間控制可以使用nanosleep()函數。 [2] 

Sleep函數C語言實例

在Windows系統中:
    Sleep(2*1000); //sleep for 2 seconds
在Unix系統中:
    sleep(2);   //sleep for 2 seconds

Sleep函數注意

在VC中Sleep中的第一個英文字符為大寫的"S"
在標準C中是sleep(S不要大寫),下面使用大寫的來説明,具體用什麼看你用什麼編譯器。簡單的説VC用Sleep,別的一律使用sleep。
Sleep函數的一般形式:
Sleep(unsigned long);
其中,Sleep()裏面的單位,是以毫秒為單位,所以如果想讓函數滯留1秒的話,應該是Sleep(1000);
在Linux下,sleep中的“s”不大寫
sleep()單位為秒,usleep()裏面的單位是微秒。在內核中,sleep的實現是由pause函數和alarm函數兩個實現的。
特別注意在Codeblocks環境下是無法使用sleep函數的,因為在windows上Codeblocks採用mingw(Gnu在Window環境下的編譯器,可以充分使用WindowsApi)作為編譯器,而在stdlib.h中sleep的説明如下:_CRTIMP void __cdecl __MINGW_NOTHROW _sleep (unsigned long) __MINGW_ATTRIB_DEPRECATED;可以認為mingw捨棄了sleep函數,建議用Sleep實現sleep。

Sleep函數示例

#include <windows.h>
#include<stdio.h>
int main()
{
int a;
a=1000;
printf("你");
Sleep(a);/* VC 使用Sleep*/
printf("好"); /*輸出“你”和“好”之間會間隔一千毫秒,即間隔一秒,Sleep()的單位為毫秒*/
return 0;
}
參考資料