int select(int nfds, fd_set *readfds, fd_set *writefds, fd_set *errorfds, struct timeval *timeout);
针对第一个参数nfds
,以下是我从维基百科获取的信息:
这个参数是所有集合中文件描述符最大值加一的整数。换句话说,在向每个集合添加文件描述符时,必须计算所有描述符的最大整数值,然后将该值加一,再将其作为
nfds
参数传递。
我有一个简单的问题:
如果我要处理多个套接字,应该如何设置select
的第一个参数?
我应该将它设置为最大套接字号码+1吗?
如果是这样,那么select
是否表示正在监听小于最大套接字号码加1的所有文件描述符?
例如,我有三个套接字:111、222和333。如果我将第一个参数设置为334,那么这是否意味着我正在监听0到333之间的所有文件描述符?