linux中c"fopen"可以打开的最大文件数

nar*_*ren 7 c fopen

fopen在Linux中,c 可以同时打开的最大文件数是多少?

Jer*_*fin 11

要求提供FOPEN_MAX实施<stdio.h>.这是可以同时打开实现保证的最小文件数.您可能能够打开更多,但唯一的方法就是测试.

需要注意的是内核的限制,从这个独立的-这告诉你有多少文件,你可以(潜在的)开放open,creat和其他操作系统的调用.C实现的标准库可以(并且经常会)强加自己的限制(例如,通过静态分配数组FILE).理论上,您可以打开的最大数量是内核和库实现所施加的限制的最小值 - 但内核的限制几乎总是(更高).

一般来说,如果你关心这一点,你可能会做错事.


jh3*_*314 3

您可以通过执行以下操作查看允许的最大打开文件数(内核限制):

cat /proc/sys/fs/file-max
Run Code Online (Sandbox Code Playgroud)

引用内核文档:

file-max 中的值表示 Linux 内核将分配的文件句柄的最大数量。当您收到大量有关文件句柄耗尽的错误消息时,您可能需要增加此限制。

  • 这可能是用户限制;)请参阅“ulimit -n” (4认同)
  • FOPEN_MAX 不是限制。它为您提供*实现保证可以同时打开的最小流数* (3认同)