在典型的OS上,使用标准C盘IO一次可以打开多少个文件?
我试图读取一些常数,但在Windows XP 32位上,该常数仅为20左右。它似乎可以在30多个设备上正常工作,但我尚未对其进行广泛的测试。
我一次最多需要打开约400个文件,所以如果大多数现代OS都支持的话,那就太好了。它不需要支持XP,但应该支持Linux,Win7和Windows Server的最新版本。
另一种方法是编写自己的小型文件系统,如果可能的话,我要避免。
在 Linux 上,这取决于可用文件描述符的数量。您可以用来ulimit -n
设置/显示每个 shell 可用 FD 的数量。
请参阅这些说明,了解如何检查(或更改)Linux 中可用的总 FD:s 的值。
这篇 IBM 支持文章建议在 Windows 上该数字为 512,您可以在注册表中更改它(按照文章中的说明)
as(无关紧要,因为 INT_MAX 很大)open()
返回 fd as int
- int 的大小也限制了上限。