IO多路復用 select

2021-09-22 01:44:07 字數 627 閱讀 2714

出自朱有鵬老師的課堂

#include

#include

#include

#include

#include

#include

#include

#include

#include

int main(void)

// 當前有兩個fd,乙個是fd乙個是0

// 處理 myset

fd_zero(&myset); // 全部清零

fd_set(fd, &myset); // 新增進去

fd_set(0, &myset);

tm.tv_sec = 3; //秒

tm.tv_usec = 0; //微秒

ret = select(fd+1, &myset, null, null, &tm); //select經過呼叫就會被阻塞,等待滑鼠或者鍵盤的響應,如下:

if(ret < 0) //出錯了

else if(ret == 0) //超時了

else //大於0

if(fd_isset(fd, &myset))

}return 0;

IO多路復用 select

select系統呼叫的目的是 在一段指定時間內,監聽使用者感興趣的檔案描述符上的可讀 可寫和異常事件。poll和select應該被歸類為這樣的系統 呼叫,它們可以阻塞地同時探測一組支援非阻塞的io裝置,直至某乙個裝置觸發了事件或者超過了指定的等待時間 也就是說它們的職責不是做io,而是幫助 呼叫者尋...

I O多路復用 select

int select int n,fd set readfds,fd set writefds,fd set exceptfds,struct timeval timeout 有三種型別的描述符型別 readset writeset exceptset,分別對應讀 寫 異常條件的描述符集合。fd s...

IO多路復用 select模型

客戶端 見 c s通訊 伺服器阻塞型使用 伺服器端 include include include include include include include include include include include include int main set local address m...