linux下的poll函式

2021-07-02 20:18:48 字數 1203 閱讀 5423

poll呼叫和select呼叫實現的功能一樣,都是網路io利用的一種機制。

需要的的庫

#include

int poll(struct pollfd fds, nfds_t nfds, int timeout);

struct pollfd ;

fd表示檔案描述符;

events表示請求檢測的事件;

revents表示檢測之後返回的事件;

events的取值 常量

說明 pollin

普通或優先順序帶資料可讀

pollrdnorm普通資料可讀

pollrdband

優先順序帶資料可讀

pollpri

高優先順序資料可讀

pollout

普通資料可寫

pollwrnorm

普通資料可寫

pollwrband

優先順序帶資料可寫

pollerr

發生錯誤

pollhup

發生掛起

pollnval

描述字不是乙個開啟的檔案

nfds:用於標記陣列fds中的struct pollfd結構元素的總數量;

timeout:poll函式呼叫阻塞的時間,單位是ms(毫秒)

#include #include #include #include #include #include int main()

pid_t pid = fork();//建立程序

if (pid == 0)//進入子程序

}else

if (fds[0].revents)

if (fds[1].revents)

}int status;

wait(&status);

}return 0;

}

parent recv is child fork msg 0 

parent recv is child fork msg 1 

parent recv is child fork msg 2

parent recv is child fork msg 3

輸入le

stdout is le 

parent recv is child fork msg 4 

輸入yyy

stdout is yyy

poll函式 Linux驅動基石之POLL機制

在前面引入中斷時,我們曾經舉過乙個例子 媽媽怎麼知道臥室裡小孩醒了?時不時進房間看一下 查詢方式 簡單,但是累 進去房間陪小孩一起睡覺,小孩醒了會吵醒她 休眠 喚醒 不累,但是媽媽幹不了活了 媽媽要幹很多活,但是可以陪小孩睡一會,定個鬧鐘 poll方式 要浪費點時間,但是可以繼續幹活。媽媽要麼是被小...

Linux下的i o復用 poll

1 i o復用 乙個程序或者乙個執行緒能夠同時對多個檔案描述符 socket 提供服務,伺服器上的程序或執行緒如何將多個檔案描述符統一監聽,當任意乙個檔案描述符上有事件發生,其都能及時處理。2 poll 函式 函式原型 int poll struct pollfd fds,int nfds,int ...

Linux網路程式設計 poll函式

作用 監視並等待多個檔案描述符的屬性變化。函式原型 int poll struct pollfd fds,nfds t nfds,int timeout 函式引數意義 fds 指向乙個結構體陣列的第0個元素的指標,每個陣列元素都是乙個struct pollfd結構,用於指定測試某個給定的fd的條件。...