chilkat - 在套接字 fd 大于 1024 的情况下,由 chilkat lib 中的系统调用“select”引起的潜在崩溃
问题描述
我们正在使用 linux x64 上的 chilkat lib 从 Internet 获取一些 Web 资源。注意到 chilkat lib 函数称为“select”来监视从 gdb 到我的程序的套接字事件,下面的函数称为“select”:
ChilkatSocket::waitWriteableMsHB(unsigned int, bool, bool, SocketParams&, LogBase&) () ChilkatSocket::waitReadableMsHB(unsigned int, SocketParams&, LogBase&) ()
那么当socket fd大于FD_SETSIZE(linux上为1024)时会导致FD_SET溢出,进而导致程序崩溃?是否有必要使用现代系统调用“poll”或“epoll”?
谢谢
解决方案
当 fd set 小于 FD_SETSIZE 时,Chilkat 可能会使用 select 系统调用。如果 fd 设置为 1024 或更大,它将始终使用 poll。不必担心 FD_SET 溢出,因为 Chilkat 会在所有重要的情况下选择使用“轮询”。
推荐阅读
- c++ - Mac OS 上 CLion 中的新 Vulkan 项目不会创建 VkInstance
- javascript - Flask 和 JQuery - Safari 不会注册 JQuery 所做的任何操作
- sockets - 无法通过 LwIP 在 STM32F746 UDP 套接字上接收数据
- c# - 通过正则表达式获取匹配的子字符串
- java - yml配置中的Spring Boot Spring EL
- datafeed - 如何从单个 DF 创建新的问卷-目标记录对?
- xamarin.android - Xamarin.Android 中的测试订阅始终处于付款挂起状态
- php - 两个数组的条件融合
- javascript - React 覆盖组件功能
- uml - OCL 限制和派生规则