int select(int nfds, fd_set *readfds, fd_set *writefds,fd_set *exceptfds, struct timeval *timeout);
分析:?
- ?nfds:? ? ? ? ? ? 監控的文件描述符集里最大文件描述符加1,因為此參數會告訴內核檢測前多少個文件描述符的狀態
- ?readfds:???監控有讀數據到達文件描述符集合,傳入傳出參數
- writefds:?? ?監控寫數據到達文件描述符集合,傳入傳出參數
- exceptfds:監控異常發生達文件描述符集合,如帶外數據到達異常,傳入傳出參數
- ?timeout:? ?定時阻塞監控時間
void FD_CLR(int fd, fd_set *set); //把文件描述符集合里fd清0
int FD_ISSET(int fd, fd_set *set); //測試文件描述符集合里fd是否置1
void FD_SET(int fd, fd_set *set); //把文件描述符集合里fd位置1
void FD_ZERO(fd_set *set); //把文件描述符集合里所有位清0
?