今天和小伙伴一起看select源码,感觉收获还是挺大的,网上这方面的资料还是挺少的,很少有分析select的具体实现是怎样实现的,所以,我把它整理一下,希望可以帮到想看看select具体是怎样实现的小伙伴,ok,不说废话了.
函数原型: int select(int nfds,fd_set *readfds,fd_set *writefds,fd_set *exceptfds,struct timeval * timeout);
void FD_CLR(int fd,fd_set *set);
int FD_ISSET(int fd,fd_set *set);
void FD_SET(int fd,fd_set *set);
void FD_ZERO(fd_set *set);
这些函数的具体是干什么的我就不一一介绍了,对这些函数的介绍网上的资料挺多的,不了解的可以先了解一下.
首先看几个下面要