是select()阻止或非阻止调用

时间:2020-08-14 16:09:15

标签: linux sockets blocking nonblocking

可以公平地说select()在传递带有超时值的struct timeval参数时是非阻塞的吗?并且当该参数为NULL时,它将阻塞。

1 个答案:

答案 0 :(得分:5)

可以公平地说select()在传递带有超时值的struct timeval参数时是非阻塞的吗?

不。在这种情况下,它将一直等待直到所选文件描述符之一准备就绪或达到超时为止。这种“等待”显然受到阻碍。

唯一不发生阻塞的情况是超时为0,即给定tv_sec中的tv_usectimeval被设置为0。

相关问题