2009-02-12 47 views
3

c組件中是否有等待聲明?例如,等待0.5秒後再繼續進行?C組件中的等待語句?

謝謝!

+0

你編程的操作系統是什麼? – 2009-02-12 15:36:23

+0

你是什麼意思的C組件? – starblue 2009-02-12 15:43:51

回答

7

在POSIX有

usleep(500); 

nanosleep(...); 

看看的usleep(3)nanosleep(2)手冊。 編輯nanosleep似乎現在要走的路,usleep甚至根據其手冊頁POSIX.2008已棄用!

3

對於Windows有此功能的API

Sleep(500); 

可用來看看它的MSDN頁面。它睡眠指定的毫秒數。

0

睡眠在POSIX中也是可用的,區別在於參數指定的數量爲而不是毫秒該進程應該睡眠。

7

總結和糾正約翰內斯·魏斯後的一個小問題(非德國鍵盤,不好意思):

在老派POSIX,您可以使用usleep()函式功能,它接受微秒數作爲無符號整數參數睡眠。因此,爲半秒睡覺,你會打電話:

#include <unistd.h> 
usleep(500000); /* Five hundred thousand microseconds is half a second. */ 

對於較新的POSIX式的節目(我的Gentoo Linux盒子」手冊頁說,這是POSIX.1-2001),你會使用了nanosleep( ),這需要一個指向一個結構的指針來保持睡眠時間。睡眠半秒應該是這樣的:

#include <time.h> 
struct timespec t; 
t.tv_sec = 0; 
t.tv_nsec = 500000000; /* Five hundred million nanoseconds is half a second. */ 
nanosleep(&t, NULL); /* Ignore remainder. */ 

的第二個參數了nanosleep()被稱爲「REM」,並接收其餘的時間,如果睡眠是某種中斷。在這裏,爲了簡單起見,我將它留在NULL中。你可以做一個循環,直到rem(足夠接近)爲零,以確保你真正得到了你的睡眠,而不管任何中斷。