select 函式 使用

2021-06-15 21:39:27 字數 638 閱讀 4733

告知核心等待某一或某些事件發生  而後喚醒程序  或超時返回

int select(int maxfdp1, fd_set *readset, fd_set *writeset, fd_set *excepset,

const struct timeval *timeout);    返回準備好的描述符數量 超時返0錯誤-1 

主要功能:對i/o讀 寫 異常的監控;定時功能

常用4個巨集進行操作

void fd_zero(fd_set *fdset);           清除所有位

void fd_set(int fd, fd_set *fdset);    設定位

void fd_clr(int fd, fd_set *fdset);    關閉位

void fd_isset(int fd, fd_set *fdset);  查詢該位是否設定

3.任何乙個***set設為null表示對該狀態不關心  全null可以代替sleep()使用

4.value-result引數  送時表明哪些描述符需要檢測  返回時表明哪些描述符準備完畢

maxfdp1意思是最大描述符號加1

fd_setsize定義fd_set描述符數量  但通常過大所以用這個引數減小系統負擔 

select函式使用

這兩天寫了這麼一段 select直接返回 1,錯誤資訊是 invalid argments 顯然沒有達到阻塞超時的效果。如下 bool issocketwaitread inf fd,int usec 這段 在標準的linux環境可以執行,但是在arm體系架構的國產化作業系統下,返回值永遠是 1 修...

select函式的使用

select 函式 系統提供 select 函式來實現多路復用輸入 輸出模型。原型 include sys time.h include unistd.h select 函式 系統提供 select 函式來實現多路復用輸入 輸出模型。原型 include sys time.h include uni...

select函式使用總結

函式原型為 int select intmaxfdpl,fd set readfds,fd set writefds,fd set read exceptfds,struct timeval tvptr 1 前面文章已詳細解釋最後乙個引數,表示超時的引數,但是在除錯過程中發現設定了超時時間,但只有第...