当前位置: 技术问答>linux和unix
为什么select()的第一个参数必须是maxfd"+1",这个+1用意何在?
来源: 互联网 发布时间:2017-01-12
本文导语: 为什么不是+0,+2,-1 必须是+1,这个编程技巧的意义何在,而且,一定要是+1么? 还请高手解释一下! | 因為fd的下標通常從0開始,而fd的實際個數就是maxfd + 1。 | 不是。 加1仅仅是...
为什么不是+0,+2,-1
必须是+1,这个编程技巧的意义何在,而且,一定要是+1么?
还请高手解释一下!
必须是+1,这个编程技巧的意义何在,而且,一定要是+1么?
还请高手解释一下!
|
因為fd的下標通常從0開始,而fd的實際個數就是maxfd + 1。
|
不是。
加1仅仅是为了效率。如果不加1,那么最后一个fd没有检测到(它用的是小于判断),如果加2或者更多,则浪费了(检测了不该检测的fd)。
加1仅仅是为了效率。如果不加1,那么最后一个fd没有检测到(它用的是小于判断),如果加2或者更多,则浪费了(检测了不该检测的fd)。
|
你告诉它n,那么它扫0..n-1,所以你告诉它n+1,它扫0..n,就这么简单。
|
楼上都说完了,楼主看看 unix环境高级编程 中的 12章 高级I/O 中的 select函数 一节
您可能感兴趣的文章:
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。