c - 我一次可以打开多少个文件?

标签 c io disk

在典型的操作系统上,我可以使用标准 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/

相关文章:

java - 从 Java 调用 R 脚本

python - 仅使用 Python 访问 Linux 中的 SMART 属性?

disk - cocoa 如何获得已经安装的不可安装磁盘

java - 相同的代码在 C 和 Java 中给出了不同的答案,你能帮我吗?

c# - 如何在 c# (mono) 中导入 c 库 (.dll/.so)

c - 使用 malloc 对 double 动态数组进行合并排序,内存问题

Python列表操作(追加多个列表)

c++ - 创建与输入同名的文件

postgresql - "replacement inserts"的最佳磁盘节省策略

c - fgets 中的段错误,试图在 c 程序中运行 shell 命令