A :创建一张文件描述符表,将关心的文件描述符放入表
B : 通过select 函数探测表中的文件描述符是否就绪(就绪:条件满足)
C : 有就绪的文件描述符select函数返回,然后调用相关的函数
函数原型:
int select(int nfds ,fd_set *readfs,fd_set *writefds, fd_set *exceptfds,struct timeval *timeout );
返回值:返回零超时,返回 -1 出错 ,返回 > 0 则文件描述符正数目
几个相关函数:
1.将文件描述符从文件中清除
void FD_CLR(int fd,fd_set *set) ;
2. 判断文件描述符是否在文件描述符表中
int FD_ISSET(int fd , fd_set *set);
3. 将fd加入表
void FD_SET(int fd,fd_set *set):
4. 清空表
void FD_ZERO(fd_set *set);