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时会发生什么。