int select(int nfds,
fd_set *readfds,
fd_set *writefds,
fd_set *exceptfds,
struct timeval *timeout);
的select
,nfds
第一个参数,应该是最大的文件描述符加1,这应该是至少1
但我已经看到了一些代码设置NFDs的是0,这是使用合法的吗?
另外,当nfds
为负数或timeout
包含无效值时,返回值select
设置为EINVAL
。同样,它没有说明当nfds
为0时发生了什么。当nfds为0时,“select”会做什么?
可能重复的[为什么使用select()而不是sleep()?](http://stackoverflow.com/questions/3125645/why-use-select-instead-of-sleep) – hyde