select()機制中提供一fd_set的數據結構,實際上是一long類型的數組,每一個數組元素都能與一打開的文件句柄(不管是socket句柄,還是其他文件或命名管道或設備句柄)建立聯繫,建立聯繫的工作由程序員完成,當調用select()時,由內核根據IO狀態修改fd_set的內容,由此來通知執行了select()的進程哪一socket或文件可讀。
fd_set set;
FD_ZERO(&set); /*將set清零使集合中不含任何fd*/
FD_SET(fd, &set); /*將fd加入set集合*/
FD_CLR(fd, &set); /*將fd從set集合中清除*/
FD_ISSET(fd,
&set); /*測試fd是否在set集合中*/