select系統呼叫

2021-04-14 14:19:23 字數 667 閱讀 2536

select 系統呼叫:

select系統呼叫是用來監視多個檔案控制代碼的狀態的。程式會停在select這裡等待,直到被監視的檔案控制代碼有某乙個或多個發生了狀態改變,或者到了超時時間。

具體的select系統呼叫的引數可以看看man手冊裡面的說明,這裡我們用乙個使用者空間的事例來解釋說明一下這個系統呼叫的用法:

int main(void)

//同上的fd1

fd2 = open("/dev/select2",0666);

if(fd2 < 0)

if(fd1 > fd2)

max_fd = fd1+1;

else

max_fd = fd2+1;

//這裡我們隨便設定了個超時時間為1秒

timeout.tv_sec = 1;

timeout.tv_usec = 0;

for(i = 0;i<10;i++)

printf("/n"); }

return 0; }

在核心中註冊了兩個字元裝置,在響應使用者空間系統呼叫select的時候,執行的是struct file_operations結構中的poll函式,在poll函式中做相應的判斷處理之後進行給予相應的返回值既可。具體的返回值可以參考net/ipv4/tcp.c中的原始碼中的tcp_poll函式的操作。

select系統呼叫

1 include select.h 2int select int maxfdps,fd set readset,fd set writeset,fd set exceptset,struct timeval timeout maxfdps 被監聽的檔案描述符 fd 的數量 readset 結構指...

Linux下select 系統呼叫

一 select 函式功能 select系統呼叫允許程式同時在多個底層檔案表述符上,等待輸入的到達或輸出的完成。二 函式意義 乙個伺服器可以同時在多個開啟的套接字等待請求到來的方法而處理多個客戶。只是具體應用的其中之一 自己的理解,但凡是程式在執行過程中會遇到阻塞 不到條件發生就不往下執行 的情況,...

Linux I O復用 select系統呼叫

linux中i o復用使得程式能夠同時監聽多個檔案描述符,這對提高程式的效能至關重要。linux下實現i o復用的系統呼叫主要有select poll epoll。select系統呼叫 select的主要用途是 在一段時間內,監聽使用者感興趣的檔案描述符上的可讀,可寫和異常事件。1.select原型...