行緩沖!你要修改成這樣。
#include<stdio.h>
int main()
{
printf("hello\n");
sleep(3);
printf("after 3s\n");
return 0;
}
或者printf後面添加fflush,
printf("hello");
fflush(stdout);
❷ 在linux下,想用sleep函數實現延時五秒,應該怎麼設參數
使用許可權 : 所有使用者
使用方式 : sleep [--help] [--version] number[smhd]
說明 : 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);
❸ linux 中sleep是什麼意思
sleep
睡眠,參數為時間,單位:秒
shell中,用法:
sleep seconds,表示睡眠多少秒
代碼中,用法:
#include <unistd.h>
unsigned int sleep(unsigned int seconds);
視實際需要,有時需要睡眠若干秒後繼續執行,如:
執行某一過程,但並不關心是否執行完畢、執行成功還是失敗,也可能執行過程中掛住,這時又不想一直卡在這里不動,就可設定一個睡眠時間x秒,x秒後繼續向下執行。
❹ 如何在Linux系統里使用sleep函數
sleep通常用在循環中讓程序掛起等時間過了再繼續往下執行
可以用 man 3 sleep 可以看到頭文件和幫助
❺ linux sleep 是多久
linux下的sleep單位是秒。
可能是由於某個進程長期得不到響應,比如nfs造成的IO中斷,應用一直在等待響應,等的都睡著了。。所以也看不到報錯,呵呵。具體的也看不出到底是哪個進程引起的。建議就是重啟相關的java應用。或者重啟機器。
進程為什麼會被置於uninterruptible sleep狀態呢?處於uninterruptible sleep狀態的進程通常是在等待IO,比如磁碟IO,網路IO,其他外設IO,如果進程正在等待的IO在較長的時間內都沒有響應,那麼就很會不幸地被 ps看到了,同時也就意味著很有可能有IO出了問題,可能是外設本身出了故障,也可能是比如掛載的遠程文件系統已經不可訪問了,我以前遇到的問題就是由 down掉的NFS伺服器引起的。
正是因為得不到IO的相應,進程才進入了uninterruptible sleep狀態,所以要想使進程從uninterruptible sleep狀態恢復,就得使進程等待的IO恢復,比如如果是因為從遠程掛載的NFS卷不可訪問導致進程進入uninterruptible sleep狀態的,那麼可以通過恢復該NFS卷的連接來使進程的IO請求得到滿足,除此之外,要想幹掉處在D狀態進程就只能重啟整個Linux系統了。
❻ linux 為什麼用sleep 函數
Linux下的sleep函數 要用的話得需要#include 函數原型:unsigned int sleep(unsigned int seconds); 參數: 掛起的時間數 ,單位為秒 返回值:若進程/線程掛起到參數所指定的時間則返回0,若有信號中斷則返回剩餘秒數。
❼ 請問linux裡面的sleep函數怎麼用下面的程序代碼為什麼沒有sleep(1)這句話,不能列印出來第一個輸出
sleep
1
就是讓主程序阻塞1秒,等待線程的輸出。你注釋掉sleep,當然不能列印出第一句話。
❽ linux sleep命令求解
ctrl+c 結束下
sleep 30
這樣休息30秒即可,別搞得太久了
❾ Linux系統sleep命令使用方法說明
sleep,即睡眠的意思,在Linux系統中,sleep命令主要用來延遲shell腳本的時間,也可使用於Windows系統中,下面小編針對sleep命令在Linux系統中的用法做個詳細介紹,並為大家區別下Linux
sleep和Windows
sleep命令的用法。
linux
sleep
命令用來睡眠一段時間,sleep
可以用來將目前動作延遲一段時間。時間的單位有:秒(s),分鍾(m),小時(h),天(d)
用法如下:
sleep
Number(suffix)
默認單位是秒(s)
sleep
1
==
sleep
1s
sleep
0.01
查看版本
linux
sleep
與
windows
sleep的區別
在linux里,sleep
的單位是秒,也就是sleep
1000就是睡眠了1000
秒,而在windows中,如果調用sleep函數單位是毫秒,sleep(1000)則是睡眠了1秒。
上面就是Linux使用sleep命令的方法介紹了,從本文的介紹中可以看出,sleep在Linux和Windows系統的區別主要表現在單位上,但用法並無太大差別。
❿ Linux伺服器rc.local 執行腳本,中的sleep命令
sleep 30,等待30秒。
建議把sleep命令以及sleep之後的動作寫在先前那個命令動作後面,同時放置在後台。