在一个典型的操作系统上,我可以使用标准的C盘IO一次打开多少个文件?
我试着读取一些常量来判断,但是在32位的Windows XP上只有20或者更多。虽然它在超过30个版本的情况下似乎工作得很好,但我还没有广泛地测试它。
我需要一次最多打开大约400个文件,所以如果大多数现代操作系统支持这一点,那就太棒了。它不需要支持XP,但应该支持Linux、Win7和最新版本的Windows server。
另一种选择是编写我自己的迷你文件系统,如果可能的话,我想避免这种情况。
发布于 2010-03-11 21:21:18
进程可以使用getrlimit系统调用查询限制。
#include<sys/resource.h>
struct rlimit rlim;
getrlimit(RLIMIT_NOFILE, &rlim);
printf("Max number of open files: %d\n", rlim.rlim_cur-1);发布于 2011-05-25 22:29:41
仅供参考,作为根用户,您必须首先修改/etc/security/limits.conf中的“nofile”项。例如:
* hard nofile 10240
* soft nofile 10240( limits.conf中的更改通常在用户登录时生效)
然后,用户可以使用bash命令ulimit -n 。我已经在Fedora 11上测试了多达10,240个文件。
ulimit -n <max_number_of_files>最后,所有这一切都受到内核限制的限制,由:(我猜您可以在其中回显一个值以获得更高的值……风险自负)
cat /proc/sys/fs/file-max另请参阅http://www.karakas-online.de/forum/viewtopic.php?t=9834
https://stackoverflow.com/questions/2425084
复制相似问题