You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

各平台中OPEN_MAX的取值及文件描述符最大可选值咨询

各平台默认场景下OPEN_MAX的取值情况

OPEN_MAX是POSIX标准定义的进程可打开文件描述符的最小上限宏,存在于<limits.h>中,但不同操作系统的默认实现差异明显。以下是常见平台未做自定义配置的最简单场景下的默认取值:

Unix-like 主流平台

  • Linux:普通用户进程的默认软限制(对应OPEN_MAX的动态实际值)通常为1024,硬限制多为65536;部分新发行版会将软限制默认调高到4096。注意<limits.h>里的静态OPEN_MAX宏一般是保守值,实际可用上限以sysconf(_SC_OPEN_MAX)或getrlimit(RLIMIT_NOFILE)的返回结果为准。
  • FreeBSD:默认软限制1024,硬限制524288;<limits.h>中的静态OPEN_MAX宏定义为1024,但运行时可通过动态调用获取更高的可用上限。
  • macOS:早期版本默认软限制为256,Ventura及之后的新版本已提升至10240,硬限制标记为unlimited(实际受系统硬件资源约束)。静态OPEN_MAX宏一般是1024,不代表实际运行上限。
  • Solaris:默认软限制1024,硬限制65536;静态OPEN_MAX宏定义为1024,动态上限可通过sysconf或getrlimit调整。

其他类Unix平台

  • AIX:默认软限制2000,硬限制65536,<limits.h>中的静态OPEN_MAX宏直接对应默认软限制值。
  • HP-UX:旧版本默认软限制为60,新版本通常调整至1024,硬限制多为65536,静态OPEN_MAX宏对应默认软限制。

关键提示

  • 静态的OPEN_MAX宏只是POSIX要求的最低保障值,绝大多数系统的实际动态上限远高于此,生产环境中务必使用sysconf(_SC_OPEN_MAX)或getrlimit(RLIMIT_NOFILE)获取当前进程的真实可用上限,不要依赖<limits.h>的静态定义。
  • 所有平台基本都支持通过系统配置(如/etc/security/limits.conf、sysctl参数等)调整硬/软限制,上述值仅针对未做任何自定义修改的默认场景。

内容的提问来源于stack exchange,提问作者Bruno Haible

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.01 17:42:42