Sleep函式可以使電腦程式(進程,任務或執行緒)進入休眠,使其在一段時間內處於非活動狀態。當函式設定的計時器到期,或者接收到信號、程式發生中斷都會導致程式繼續執行。
基本介紹
- 中文名:Sleep函式
- 外文名:Sleep Function
- 功 能:執行掛起一段時間
- 用 法:void Sleep(DWORD ms);
- 單位:毫秒
- 系統:Windows、Linux
用法,Windows系統,Unix系統,C語言實例,注意,示例,
用法
sleep()函式的調用需要一個時間作為參數,代表程式執行掛起的時間間隔。通常參數的單位是秒,但在一些更加精確的作業系統中能以毫秒甚至是微秒為單位。
Windows系統
在Windows作業系統中,sleep()函式需要一個以毫秒為單位的參數代表程式掛起時長,sleep()函式包含在kernel32.dll動態程式庫中,但在批處理檔案中沒有可以直接運行的sleep()函式。可以在如Windows 2003資源包等Windows工具集中找到sleep()函式。
Unix系統
在Unix類的作業系統中,調用sleep()函式需要一個以秒為單位的參數,需要更精確的時間控制可以使用nanosleep()函式。
C語言實例
在Windows系統中:
Sleep(2*1000); //sleep for 2 seconds
在Unix系統中:
sleep(2); //sleep for 2 seconds
注意
在VC中Sleep中的第一個英文字元為大寫的"S"
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。
示例
#include <windows.h>
#include<stdio.h>
int main()
{
int a;
a=1000;
printf("你");
Sleep(a);/* VC 使用Sleep*/
printf("好"); /*輸出“你”和“好”之間會間隔一千毫秒,即間隔一秒,Sleep()的單位為毫秒*/
return 0;
}