select() 函数在 C 中的行为如何
How does the select() function behave in C
我对 select 函数的工作原理感到困惑。直到现在,我认为它只是检查所有已在我们作为参数提供的 fd_set 结构中设置的套接字。但是从这里 https://pubs.opengroup.org/onlinepubs/7908799/xsh/select.html#:~:text=The%20select()%20function%20tests,descriptors%20are%20ready%20to%20read.
阅读函数
The nfds argument specifies the range of file descriptors to be tested. The select() function tests file descriptors in the range of 0 to nfds-1.
这表明所有的套接字描述符都被检查了,即使是那些不在列表中的描述符。
有人可以确认这是否有效吗?
nfds
参数作为要检查的文件描述符的上限。该函数实际上并不检查该范围内的所有文件描述符,仅检查 fd_set
参数之一中列出的文件描述符。
这个参数通常使用 FD_SETSIZE-1
,其中 FD_SETSIZE
是一个定义 select
将接受的文件描述符数量限制的宏。
我对 select 函数的工作原理感到困惑。直到现在,我认为它只是检查所有已在我们作为参数提供的 fd_set 结构中设置的套接字。但是从这里 https://pubs.opengroup.org/onlinepubs/7908799/xsh/select.html#:~:text=The%20select()%20function%20tests,descriptors%20are%20ready%20to%20read.
阅读函数The nfds argument specifies the range of file descriptors to be tested. The select() function tests file descriptors in the range of 0 to nfds-1.
这表明所有的套接字描述符都被检查了,即使是那些不在列表中的描述符。 有人可以确认这是否有效吗?
nfds
参数作为要检查的文件描述符的上限。该函数实际上并不检查该范围内的所有文件描述符,仅检查 fd_set
参数之一中列出的文件描述符。
这个参数通常使用 FD_SETSIZE-1
,其中 FD_SETSIZE
是一个定义 select
将接受的文件描述符数量限制的宏。