1. 程式人生 > >select()系統呼叫和檔案描述符集fd_set 轉

select()系統呼叫和檔案描述符集fd_set 轉

過去,描述符集被作為一個整數位遮蔽碼得到實現,但是這種實現對於多於32個的檔案描述符將無法工作。描述符集現在通常用整數陣列中的位域表示,陣列元素的每一位對應一個檔案描述符。例如,一個整數佔32位,那麼整數陣列的第一個元素代表檔案描述符0到31,陣列的第二個元素代表檔案描述符32到63,以此類推。巨集FD_SET設定整數陣列中對應於fd檔案描述符的位為1,巨集FD_CLR設定整數陣列中對應於fd檔案描述符的位為0,巨集FD_ZERO設定整數陣列中的所有位都為0。假設執行如下程式後: