Sleep函式

Sleep函式

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"
在標準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。

示例

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

相關詞條

熱門詞條

聯絡我們