2010-03-11 2 views
4

В типичной ОС, сколько файлов я могу открыть сразу, используя стандартный диск C IO?Сколько файлов я могу открыть сразу?

Я попытался прочитать некоторую константу, которая должна это сказать, но в Windows XP 32 бит был ничтожным 20 или что-то в этом роде. Казалось, что он отлично работает с более чем 30, но я не тестировал его широко.

Мне нужно около 400 файлов, открываемых сразу при макс, поэтому, если большинство современных ОС поддерживают это, было бы замечательно. Он не нуждается в поддержке XP, но должен поддерживать Linux, Win7 и последние версии Windows-сервера.

Альтернативой является создание собственной мини-файловой системы, которую я хочу избежать, если это возможно.

ответ

2

В Linux это зависит от количества доступных дескрипторов файлов. Вы можете использовать ulimit -n, чтобы установить/показать количество доступных FD на оболочку.

Посмотрите на них instructions на то, как проверить (или изменить) значение доступного полного FD: s в Linux.

This IBM support article предполагает, что в Windows, это число 512, и вы можете изменить его в реестре (как указано в статье)

As open() возвращает Fd, как int - размер INT пределы также верхняя предел. (нерелевантно, поскольку INT_MAX много)

3

Процесс может запросить ограничение, используя системный вызов getrlimit.

#include<sys/resource.h> 
struct rlimit rlim; 
getrlimit(RLIMIT_NOFILE, &rlim); 
printf("Max number of open files: %d\n", rlim.rlim_cur-1); 
1

FYI, как корень, вы должны сначала изменить 'nofile' элемент в /etc/security/limits.conf. Например:

*    hard nofile   10240 
*    soft nofile   10240 

(изменения в limits.conf обычно вступают в силу, когда пользователь входит в систему)

Затем пользователи могут использовать ULIMIT -n команды Баш. Я проверил это с до 10240 файлов на Fedora 11.

ulimit -n <max_number_of_files> 

Наконец, все это ограничивается пределом ядра, определяется по формуле: (я думаю, вы могли бы повторить значение в это пойти еще выше. .. на свой страх и риск)

cat /proc/sys/fs/file-max 

Также см http://www.karakas-online.de/forum/viewtopic.php?t=9834

Смежные вопросы