linux 應用程式中select定時器

2021-07-30 13:44:08 字數 479 閱讀 4189

1.在應用程式中使用select實現1ms的定時器:通過select實現毫秒級的延時,**如下:

/* ms  timer */

int mssleep(long ms)

建立乙個執行緒timer,迴圈處理延時,實現迴圈定時器

void *timer(void *arg)

}

2.在程式其他地方呼叫,實現500ms定時處理,發現:

(1)在ubuntu 12.04下執行應用程式,定時時間根本沒法保證,原定500ms的定時時間可能800ms甚至超過1s

(2)在嵌入式開發板上執行應用程式,定時時間相對穩定一些,在530 ~ 550 ms左右,但是與理論的500ms還是有較大偏差。

從上面可看出,這種定時實現方法在不同的執行環境下偏差不定,沒辦法滿足較精確的定時要求。看來,得想其他的辦法來實現精確定時了,其他的軟體定時器實現方法?使用硬體定時器?

linux應用程式中的Singal

linux應用程式中的singal 標頭檔案 include 功 能 設定某一訊號的對應動作 函式原型 void signal int signum,void handler int int 或者 typedef void sig t int sig t signal int signum,sig ...

linux應用程式中,記憶體布局

方法 通過檢視應用程式程序中的程序位址對映檔案實現。例如檢視2053號程序的記憶體布局 命令如下 cat proc 2053 maps 結果如下 通過我們的下面來程式分析各種 變數在程式中的記憶體位置。檔名 addr.c include include int a 全域性未初始化變數 int b 2...

Linux應用程式開發 Hello

第一步 在linux平台 我用的是redhat9.2 上安裝好gcc編譯工具,例如編譯arm平台的應用程式可用arm linux gcc,如用在pc平台下執行,可用pc自帶的gcc。第二步 編寫hello程式,可以使用redhat自帶的gedit。程式如下 include int main 並將程式...