linux中sleep函式使用

2021-06-07 01:08:11 字數 1209 閱讀 8510

應用程式:

#include

usleep(n) //n微秒

sleep(n)//n毫秒

sleep(n)//n秒

驅動程式:

#include

mdelay(n) //milliseconds 其實現

#ifdef notdef

#define mdelay(n) (\

)#else

#define mdelay(n) (\

(__builtin_constant_p(n) && (n)<=max_udelay_ms) ? udelay((n)*1000) : \

())#endif

呼叫asm/delay.h的udelay,udelay應該是納秒級的延時

dos: 

sleep(1); //停留1秒 

delay(100); //停留100毫秒   

windows: 

sleep(100); //停留100毫秒 

linux: 

sleep(1); //停留1秒 

usleep(1000); //停留1毫秒 

每乙個平台不太一樣,最好自己定義一套跨平台的巨集進行控制  

秒還是微秒?關於延時函式sleep()

因為要寫一段**,需要用到sleep()函式,在我印象中,sleep(10)好像是休眠10微秒,結果卻是休眠了10秒(在linux下)。覺得很奇怪,因為頭兒也記得好像是微秒為單位的。所以就查了一下。

原來linux下的sleep函式原型為:

unsigned int sleep(unsigned int seconds);

而mfc中的sleep函式原型為:

void sleep(dword dwmilliseconds);

也就是說,linux下(使用的gcc的庫),sleep()函式是以秒為單位的,sleep(1);就是休眠1秒。而mfc下的 sleep()函式是以微秒為單位的,sleep(1000);才是休眠1秒。原來如此啊。而如果在linux下也用微妙為單位休眠,可以使用執行緒休眠函式:void usleep(unsigned long usec);當然,使用的時候別忘記#include 哦。

另外值得一提的是,linux下還有個delay()函式,原型為extern void delay(unsigned int msec);它可以延時msec*4毫秒,也就是如果想延時一秒鐘的話,可以這麼用 delay(250);

linux中sleep函式使用

應用程式 include usleep n n微秒 sleep n n毫秒 sleep n n秒 驅動程式 include mdelay n milliseconds 其實現 ifdef notdef define mdelay n else define mdelay n builtin cons...

Linux中的sleep函式

環境 vmware workstation centos 6.4 x86 64 說明 1 linux系統下可以使用sleep函式。2 sleep函式在標頭檔案 include 中。3 sleep函式的定義 unsigned int sleep unsigned int seconds 4 函式的引數...

Sleep函式的使用

sleep 函式函式名 sleep 功 能 執行掛起一段時間 用 法 unsigned sleep unsigned milliseconds 在 vc中使用帶上標頭檔案 include 在 gcc編譯器 中,使用的標頭檔案因 gcc版本的不同而不同 include 注意 在vc中 sleep 中的...