首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >我一次可以打开多少个文件?

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

Stack Overflow用户
提问于 2010-03-11 21:09:57
回答 2查看 2.5K关注 0票数 5

在一个典型的操作系统上,我可以使用标准的C盘IO一次打开多少个文件?

我试着读取一些常量来判断,但是在32位的Windows XP上只有20或者更多。虽然它在超过30个版本的情况下似乎工作得很好,但我还没有广泛地测试它。

我需要一次最多打开大约400个文件,所以如果大多数现代操作系统支持这一点,那就太棒了。它不需要支持XP,但应该支持Linux、Win7和最新版本的Windows server。

另一种选择是编写我自己的迷你文件系统,如果可能的话,我想避免这种情况。

EN

回答 2

Stack Overflow用户

发布于 2010-03-11 21:21:18

进程可以使用getrlimit系统调用查询限制。

代码语言:javascript
运行
复制
#include<sys/resource.h>
struct rlimit rlim;
getrlimit(RLIMIT_NOFILE, &rlim);
printf("Max number of open files: %d\n", rlim.rlim_cur-1);
票数 3
EN

Stack Overflow用户

发布于 2011-05-25 22:29:41

仅供参考,作为根用户,您必须首先修改/etc/security/limits.conf中的“nofile”项。例如:

代码语言:javascript
运行
复制
*                hard    nofile          10240
*                soft    nofile          10240

( limits.conf中的更改通常在用户登录时生效)

然后,用户可以使用bash命令ulimit -n 。我已经在Fedora 11上测试了多达10,240个文件。

代码语言:javascript
运行
复制
ulimit -n <max_number_of_files>

最后,所有这一切都受到内核限制的限制,由:(我猜您可以在其中回显一个值以获得更高的值……风险自负)

代码语言:javascript
运行
复制
cat /proc/sys/fs/file-max

另请参阅http://www.karakas-online.de/forum/viewtopic.php?t=9834

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2425084

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档