标签: linux sockets blocking nonblocking
可以公平地说select()在传递带有超时值的struct timeval参数时是非阻塞的吗?并且当该参数为NULL时,它将阻塞。
select()
struct timeval
答案 0 :(得分:5)
可以公平地说select()在传递带有超时值的struct timeval参数时是非阻塞的吗?
不。在这种情况下,它将一直等待直到所选文件描述符之一准备就绪或达到超时为止。这种“等待”显然受到阻碍。
唯一不发生阻塞的情况是超时为0,即给定tv_sec中的tv_usec和timeval被设置为0。
tv_sec
tv_usec
timeval