c語言等待函數
⑴ c語言的sleep,wait,delay函數有什麼區別
wait 是等待子進程的返回
sleep 參數指定暫停時間, 單位是 s
delay 參數指定暫停時間, 單位是 ms
所以 sleep(n) == delay(1000*n)
原型:extern void sleep(unsigned int sec);
用法:#include <system.h
功能:短暫延時
說明:延時sec秒舉例:// sleep.c
#include <system.h
main(){int c;clrscr();printf("\nHello, world!");sleep(1);clrscr();printf("\nHi, guys");getchar();return 0;}原型:extern void delay(unsigned int msec);
用法:#include <system.h
功能:短暫延時
說明:延時msec*4毫秒舉例:// delay.c
#include <system.h
main(){int c;clrscr();printf("\nHello, world!");
delay(250); // 250*4=1000msec=1secclrscr();printf("\nHi, guys");getchar();return 0;}wait(等待子進程中斷或結束)相關函數waitpid,fork表頭文件#include<sys/types.h
#include<sys/wait.h
定義函數pid_t wait (int * status);函數說明
wait()會暫時停止目前進程的執行,直到有信號來到或子進程結束。如果在調用wait()時子進程已經結束,則wait()會立即返回子進程結束狀態
值。子進程的結束狀態值會由參數status 返回,而子進程的進程識別碼也會一快返回。如果不在意結束狀態值,則參數status可以設成NULL。子進程的結束狀態值請參考waitpid()。
返回值如果執行成功則返回子進程識別碼(PID),如果有錯誤發生則返回-1。失敗原因存於errno中。
⑵ c語言里的DELAY函數到底有沒用啊
看你調了<dos.h> ,sound可能只會在PC喇叭里發音,sound後的參數應該是聲音頻率HZ。人耳朵只能識別一段頻率范圍內的。你可以從0-10000取幾個值試試聽聽。可能還需要用nosound關閉聲音。至於DELAY可以看下你的工具帶的幫助,有些需要除以一個數才得到毫秒值。
⑶ linux系統 下 如何讓C語言sleep()函數等待時間小於1秒
sleep()函數大概只能精確到50ms左右,你用sleep(10)是肯定不行的,如果你要精確的定時的話可以使用QueryPerformanceFrequency()函數,用法為:
LARGE_INTEGER litmp;
LONGLONG QPart1,QPart2;
double dfMinus, dfFreq, dfTim;
QueryPerformanceFrequency(&litmp);
dfFreq = (double)litmp.QuadPart;// 獲得計數器的時鍾頻率
QueryPerformanceCounter(&litmp);
QPart1 = litmp.QuadPart;// 獲得初始值
do
{
QueryPerformanceCounter(&litmp);
QPart2 = litmp.QuadPart;//獲得中止值
dfMinus = (double)(QPart2-QPart1);
dfTim = dfMinus / dfFreq;// 獲得對應的時間值,單位為秒
}while(dfTim<0.001);
其定時誤差不超過1微秒,精度與CPU等機器配置有關。
×××××××××××××××××××××××××
sleep()函數的中等待時間是以毫秒計算的,所以等待1秒就是sleep(1000),如果要讓等待時間小於一秒,那麼就讓傳入的參數小於1000就行了.
比如,等待0.1秒:
sleep(100);
⑷ 如何用c語言控制台程序進行延時等待,同時還可以執行其他函數
所謂的延時程序,就是讓程序進入一段無效循環,達到延時目的
有一個延時參數表的。
下面是一個10ms延時子程序(12MHZ)
void delay10ms(void)
{
unsigned char i,j,k;
for(i=5;i>0;i--)
for(j=4;j>0;j--)
for(k=248;k>0;k--);
}
⑸ C語言自定義消息函數的等待怎麼寫
消息隊列的等待就是GetMessage,沒辦法自己寫,除非你打算改Windows本身。這個函數如果沒有消息進來就會釋放CPU,如果不希望等待用PeekMessage。消息循環的格式是固定的。
⑹ C語言中輸入函數等待輸入和結束輸入
你隨便輸入一個字母試下,馬上就返回,除了你本就是要輸入%c
⑺ c語言sleep函數怎麼用
使用要帶上頭文件:
#include <windows.h>
Sleep函數:
功 能: 執行掛起一段時間
用 法: unsigned sleep(unsigned seconds);
注意:
1.在VC中使用帶上頭文件#include <windows.h>,在Linux下,gcc編譯器中,使用的頭文件因gcc版本的不同而不同#include <unistd.h>
2.在VC中,Sleep中的第一個英文字元為大寫的"S" ,在linux下不要大寫,在標准C中是sleep, 不要大寫,簡單的說VC用Sleep, 別的一律使用sleep。
3.在VC中,Sleep()裡面的單位,是以毫秒為單位,所以如果想讓函數滯留1秒的話,應該是Sleep(1000); 在Linux下,sleep()裡面的單位是秒,而不是毫秒。
示例:
#include<dos.h>
int main(void)
{
sound(440);
delay(500);
nosound();
return 0;
}
delay()是循環等待,該進程還在運行,佔用處理器。
sleep()不同,它會被掛起,把處理器讓給其他的進程。
⑻ c語言中 等待的函數是什麼呢
包含頭文件:
#include
<windows.h>
調用
Sleep(3000);
就是等待3000毫秒(3秒)。第一個字母S大寫。
--------
也可以自己寫一個
等待
整數秒的函數:
#include
<time.h>
void
wait
(
int
seconds
)
{
clock_t
endwait;
endwait
=
clock
()
+
seconds
*
CLK_TCK
;
while
(clock()
<
endwait)
{}
}
調用
wait(3);
就是等待3秒
⑼ c語言中等待的函數是什麼
如果對時間要求非常精確,可以考慮採用和匯編中處理的情況,看看cpu的頻率,將for命令分解成匯編語言,看多少毫秒執行一次命令,然後設置循環次數,這樣足夠精確,實際上在匯編下也是這么做的。