嵌入式Linux的POLL SELECT 方式

2021-10-10 15:20:47 字數 1151 閱讀 6611

版本

日期作者

說明v1

2020

韋東山摘自《嵌入式linux應用開發完全手冊》

簡單地說,它們就是「定個鬧鐘」:在呼叫 poll、select 函式時可以傳入「超時時間」。在這段時間內,條件合適時(比如有資料可讀、有空間可寫)就會立刻返回,否則等到「超時時間」結束時返回錯誤。

用法如下。

事件型別

說明pollin

有資料可讀

pollrdnorm

等同於 pollin

pollrdband

priority band data can be read,有優先順序較較高的「band data」可讀linux 系統中很少使用這個事件

pollpri

高優先順序資料可讀

pollout

可以寫資料

pollwrnorm

等同於 pollout

pollwrband

priority data may be written

pollerr

發生了錯誤

pollhup

掛起pollnval

無效的請求,一般是 fd 未 open

在呼叫 poll 函式時,要指明:

① 你要監測哪乙個檔案:哪乙個 fd

② 你想監測這個檔案的哪種事件:是 pollin、還是 pollout

最後,在 poll 函式返回時,要判斷狀態。

應用程式**如下:

struct pollfd fds[1]

;int timeout_ms =

5000

;int ret;

fds[0]

.fd = fd;

fds[0]

.events = pollin;

ret =

poll

(fds,

1, timeout_ms);if

((ret ==1)

&&(fds[0]

.revents & pollin)

)

現在程式設計:使用 poll

課後作業

使用 poll 函式監測多個輸入裝置。

使用 select 函式實現同樣的功能。

(大家可以試一試)

嵌入式 linux 編譯

第二次換了編譯環境編譯時又提示 make 3 drivers video console vgacon.o 錯誤 1 在網上搜尋結果 根據資訊的大概意思是關於vga的支援問題,在這裡我直接把關於vga的配置選項去掉不選,即 在執行 make menuconfig 配置時 不選vga 驅動。devic...

linux嵌入式開發

我的環境 主機 ubuntu 64位 開發板 mini2440 6 makefile檔案修改 在 opt friendlyarm mini2440 linux 2.6.29下執行 sudo vi.makefile 搜尋arm linux得到乙個結果 cross compile?arm linux 然...

嵌入式 Linux介紹

嵌入式 linux介紹 一 嵌入式是一門it技術。嵌入式這門it技術是幹什麼的?他有什麼價值?專門生產功能專一的智慧型電子產品 電子裝置 什麼是電子裝置?通電的東西,嵌入式來搞定,而且沒通電的影象化介面屬於應用層的那種,嵌入式也可以搞定。二 嵌入式開發的分類 基於系統平台的開發 做出來的產品有搭載系...