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 上运行。
但是对于使用默认 C 运行时库的单个进程,默认限制为 512
C 运行时库对一次可以打开的文件数有 512 个限制。尝试打开超过最大数量的文件描述符或文件流会导致程序失败。使用
_setmaxstdio
来改变这个数字。
目前尚不清楚 Windows 中所有进程的最大文件句柄总数
对于网络连接,每个会话的最大打开文件数为 16 384。可以使用以下net config server
命令进行检查
进一步阅读
- 突破 Windows 的极限:句柄
- Windows 中打开文件的数量有限制吗
- Windows Server 2008 R2 最大打开文件数限制
- 正在使用的 Windows 句柄有多少个才算“太多”?
- 增加 Windows 7 64 位中的文件句柄数量
- 为什么每个进程的窗口句柄限制为 10,000?
可以在任务管理器中轻松查看当前文件句柄的使用情况
请注意,在 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