C語言之Sleep函數


Sleep函數:

功 能: 執行掛起一段時間  

用 法: unsigned sleep(unsigned seconds);  

注意:  

在VC中使用帶上頭文件#include <windows.h>,在Linux下,gcc編譯器中,使用的頭文件因gcc版本的不同而不同#include <unistd.h> 

在VC中,Sleep中的第一個英文字符為大寫的"S" ,在linux下不要大寫,在標准C中是sleep, 不要大寫,簡單的說VC用Sleep, 別的一律使用sleep

在VC中,Sleep()里面的單位,是以毫秒為單位,所以如果想讓函數滯留1秒的話,應該是Sleep(1000); 在Linux下,sleep()里面的單位是秒,而不是毫秒。

示例:

#include<stdio.h> #include<windows.h>
int main() { int a=100; Sleep(3000);// 滯停3s打印a printf("%d",a); return 0; }

usleep函數:

功能: usleep功能把進程掛起一段時間, 單位是微秒us(百萬分之一秒)。

語法: void usleep(int micro_seconds);

返回值: 無

注意:這個函數不能工作在 Windows 操作系統中。

usleep() 與sleep()類似,用於延遲掛起進程。進程被掛起放到reday queue。只是一般情況下,延遲時間數量級是秒的時候,盡可能使用sleep()函數。且此函數已被廢除,可使用nanosleep。 

如果延遲時間為幾十毫秒,或者更小,盡可能使用usleep()函數。這樣才能最佳的利用CPU時間。

delay函數: 

功 能: 將程序的執行暫停一段時間,單位是毫秒ms(千分之一秒)  

用 法: void delay(unsigned milliseconds);  

示例:  

#include<dos.h>  

int main(void)   {   sound(440);   delay(500);   nosound();   return 0;   }

delay()是循環等待,該進程還在運行,占用處理器。

sleep()不同,它會被掛起,把處理器讓給其他的進程。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM