在典型的操作系统上,我可以使用标准 C 盘 IO 一次打开多少个文件?
我试图读取一些应该告诉它的常量,但在 Windows XP 32 位上,它只有区区 20 个左右。虽然它似乎可以很好地处理 30 多个,但我还没有对其进行广泛的测试。
我一次最多需要打开大约 400 个文件,所以如果大多数现代操作系统都支持它,那就太棒了。它不需要支持XP,但应该支持Linux、Win7和最新版本的Windows服务器。
另一种方法是编写我自己的迷你文件系统,我希望尽可能避免这种情况。
最佳答案
在 Linux 上,这取决于可用文件描述符的数量。
您可以使用 ulimit -n
来设置/显示每个 shell 的可用 FD 数量。
查看这些 instructions如何在 Linux 中检查(或更改)可用总 FD:s 的值。
This IBM support article建议在 Windows 上该数字为 512,您可以在注册表中更改它(按照文章中的说明)
<罢工>
由于 open()
将 fd 返回为 int
- int 的大小也限制了上限。
(无关紧要,因为 INT_MAX 很多)
关于c - 我一次可以打开多少个文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2425084/