打开文件数量的限制是多少?

打开文件数量的限制是多少?

Windows 10 中当前打开文件数的限制是多少?在 DOS 中,该数字为 15。

答案1

理论上,在 64 位 Windows 中,一个进程可以打开的最大句柄数为 2 32,因为句柄有 32 个有效位。但实际上每个进程被限制为 16 777 216 (2 24 )。在 32 位 Windows 上,限制可能是 2 16

为了支持 16 位程序,32 位 Windows 仅生成具有 16 个有效位的句柄——操作系统会忽略 16 个高位(即使程序不会利用这一事实)。因此没有程序可以与超过 2 16 个对象交互,这实际上相当低。

然而,为了改善这种情况,64 位 Windows 将句柄中的有效位数增加到 32。但这意味着句柄无法在不丢失信息的情况下传递给 16 位程序。因此 16 位程序无法在 64 位 Windows 上运行。

为什么 64 位操作系统无法运行 16 位应用程序?

但是对于使用默认 C 运行时库的单个进程,默认限制为 512

C 运行时库对一次可以打开的文件数有 512 个限制。尝试打开超过最大数量的文件描述符或文件流会导致程序失败。使用_setmaxstdio来改变这个数字。

文件处理

目前尚不清楚 Windows 中所有进程的最大文件句柄总数

对于网络连接,每个会话的最大打开文件数为 16 384。可以使用以下net config server命令进行检查

进一步阅读

可以在任务管理器中轻松查看当前文件句柄的使用情况

任务管理器打开句柄

请注意,在 DOS 中,该数字可以根据 config.sys 中的设置进行更改,而不是固定为 15

  • 文件(DOS 2.0 和 DR DOS 3.31 及更高版本;OS/2)
    • 指定可以同时打开的文件数。
  • 菲力希(仅限 MS-DOS 7.0 和 DR-DOS 7.02 及更高版本[6] 和 FreeDOS)
    • 与 FILES 相同,但明确将文件句柄加载到上位内存中。

https://en.wikipedia.org/wiki/CONFIG.SYS#CONFIG.SYS_directives

相关内容