Вопрос № 177274: Здравствуйте! Долго искала в сети, но внятной информации так и не нашла. Вопрос, в принципе, связан с программированием, но мне кажется, больше всё-таки относится к системе. ОС Windows XP professional sp3. Пишу программу на С++, которой требуе...
Вопрос № 177274:
Здравствуйте! Долго искала в сети, но внятной информации так и не нашла. Вопрос, в принципе, связан с программированием, но мне кажется, больше всё-таки относится к системе. ОС Windows XP professional sp3. Пишу программу на С++, которой требуется одновременный доступ к файлам количеством до 1296. При последовательном открытии файлов на определённой итерации возникает ошибка "Too many open files". Программа не относится к работе по сети, так что сетевые ограничения ни при чём.
Предполагаю, что это связано с ограничением на размер таблицы файловых дескрипторов. Вопрос такой: 1. Если это не данное ограничение, то в чём может быть проблема? 2. Если дело в таком ограничении, то: - можно ли его как-то изменить, возможно, временно или для данного процесса? - если нельзя, то как узнать, сколько файлов можно открыть одновременно, чтобы можно было отталкиваться от этого числа в коде? Спасибо!
Отправлен: 15.03.2010, 18:08
Вопрос задал: Verena, Профессионал
Всего ответов: 1 Страница вопроса »
Отвечает Vasiliy83, Бакалавр :
Здравствуйте, Verena. описание аналогичных проблем с ограничением в 509 файлов (текст на английском): http://forums.devx.com/archive/index.php/t-136946.html http://stackoverflow.com/questions/870173/is-there-a-limit-on-number-of-open-files-in-windows
из них следует, что ограничение на количество файлов - 512 (реально все же 509). варианты решения проблемы: 1) изменить программу так, чтобы не надо было открывать столько файлов 2) использовать функцию _setmaxstdio
Пожалуйста! успехов
Ответ отправил: Vasiliy83, Бакалавр
Ответ отправлен: 15.03.2010, 22:48
Номер ответа: 260145
Оценка ответа: 5 Комментарий к оценке: Спасибо, действенно и оперативно :)
Вам помог ответ? Пожалуйста, поблагодарите эксперта за это! Как сказать этому эксперту "спасибо"?
Отправить SMS#thank 260145
на номер 1151 (Россия) |
Еще номера »
Оценить выпуск »
Нам очень важно Ваше мнение об этом выпуске рассылки!
* Стоимость одного СМС-сообщения от 7.15 руб. и зависит от оператора сотовой связи.
(полный список тарифов)
** При ошибочном вводе номера ответа или текста #thank услуга считается оказанной, денежные средства не возвращаются.
*** Сумма выплаты эксперту-автору ответа расчитывается из суммы перечислений на портал от биллинговой компании.