linux 毫秒延时(linux 秒 毫秒)
sleep命令使用教程?
使用權限 : 所有使用者
使用方式 : sleep number
說明 : sleep 可以用來將目前動作延遲一段時間
參數說明 :
--help : 顯示輔助訊息
--version : 顯示版本編號
number : 時間長度,后面可接 s、m、h 或 d
其中 s 為秒,m 為 分鐘,h 為小時,d 為日數
例子 :
顯示目前時間后延遲 1 分鐘,之后再次顯示時間 :
date;sleep 1m;date
這個命令更多應用于shell腳本編程里和程序里
如下面的一段程序:
應用程序:
#include <syswait.h>
usleep(n) //n微秒
Sleep(n)//n毫秒
sleep(n)//n秒
驅動程序:
#include <linux/delay.h>
mdelay(n) //milliseconds 其實現
#ifdef notdef
#define mdelay(n) (
{unsigned long msec=(n); while (msec--) udelay(1000);})
#else
#define mdelay(n) (
(__builtin_constant_p(n) && (n)<=MAX_UDELAY_MS) ? udelay((n)*1000) :
({unsigned long msec=(n); while (msec--) udelay(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 <system.h>哦。
另外值得一提的是,linux下還有個delay()函數,原型為extern void delay(unsigned int msec);它可以延時msec*4毫秒,也就是如果想延時一秒鐘的話,可以這么用 delay(250)。
C中如何使用Sleep函數?
C語言標準庫中沒有sleep這個函數,它實際上是一個系統API函數。函數功能: 執行掛起一段時間1、在VC中使用帶上頭文件,而且全稱為Sleep(),第一個字母需要大寫。 #include <windows.h> //需要添加頭文件 Sleep(unisgned long); //函數聲明 Windows中,Sleep()里面的單位,是以毫秒為單位,所以如果想讓函數滯留1秒的話,應該寫成: Sleep(1000);2、在gcc中,使用的頭文件因gcc版本的不同而不同,一般來說,linux系統需要添加的頭文件為: #include <unistd.h>應該是Sleep(1000); 在Linux下,sleep()里面的單位是秒,而不是毫秒。
總結
以上是生活随笔為你收集整理的linux 毫秒延时(linux 秒 毫秒)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 安卓罪恶都市存档合集zip下载(安卓罪恶
- 下一篇: finally块不被执行的情况总结