gpt4 book ai didi

select - 增加 FD_SETSIZE

转载 作者:行者123 更新时间:2023-12-03 17:07:38 26 4
gpt4 key购买 nike

我需要从 1024 增加 FD_SETSIZE 值至 4096 .我知道最好使用 poll()/epoll()但我想了解什么是优点/缺点。主要问题是:我要重新编译glibc吗? ?我读了几个线程,其中更改后 .h 的更改 FD_SETSIZE仅重新编译用户应用程序。阅读glibc代码(还有内核),实际上在我看来,如果我想使用 select()、FD_* 宏等等,我必须重新编译所有,因为 fd_set 的大小被改变。在这一点上,我不仅要重新编译我的应用程序,因为如果系统中有另一个使用 select 和 friend 的“通用”应用程序,我可能会遇到问题。我对吗?

最佳答案

从技术上讲,您不必重新编译 glibc。使用自己的版本 <sys/select.h> 就足够了有一个更大的 fd_set_t ,但在其他方面兼容。它会神奇地工作,因为 select函数接收最大的文件描述符(加一),因此它可以计算出设置的大小。其他函数和宏要么是内联的,要么不关心实际的集合大小。
这仍然是一个坏主意,所以你真的应该使用 pollepoll反而。
过去,一些 libcs​​ 支持定义 FD_SETSIZE之前包括 <sys/select.h>获得更大的集合大小,但我认为对它的支持从来都不是主线 glibc 的一部分。

关于select - 增加 FD_SETSIZE,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12662468/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com