原型:
int select(int max fdp1, fd_set *readfds, fd_set *writefds, fd_set *exceptfds, struct timeval *timeout)
功能:
委托内核检查描述符集是否准备好(即可以使用)
参数:
fdp1:最大的fd加1,在三个描述符集(readfds、writefds、wxceptfds)中找出最大的描述符,然后再加1
readfds、writefds、wxceptfds:指向描述符集的指针。这三个描述符集说明了我们关心的可读、可写、或处于异常条件的各个描述符。
timeout:指定等待时间
NULL:永远等待,直到捕捉到信号或文件描述符已经准备好
具体值:具体等待的时间,若等到超时且描述符集中的文件描述符还没有准备好,就立即返回。
0:不等待,测试所有指定的描述符并立即返回(不能等到其准备好)
返回值:
> 0:准备好的文件描述符
=0:超时了
< 0(-1):出错
传入的参数是告诉内核:
我们所关心的描述符;
对于每个描述符我们所关心的条件
标签:set,writefds,readfds,tcp,描述符,fd,io,select From: https://www.cnblogs.com/zj-studyrecoding/p/17245220.html