![]() |
|
Модераторы: Daevaorn |
![]()
|
|
| jimbo |
|
||||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 180 Регистрация: 18.6.2009 Где: Южно-Сахалинск Репутация: нет Всего: нет |
Есть много файлов которые надо переконвертировать из одного формата в дргуой. делаю вот такую функцию пробежки по каталогу:
функция fxh2csv - делает конвертацию. Открывает один файл на чтение, другой на запись используя функции _open(). Эта функция возвращает дескриптор файла. проблема в том, что после конвертации 2048 файлов, дальше программа не открывает ни один файл. пишет ошибку 24 - EMFILE Too many open files код функции конвертации
Добавлено через 1 минуту и 32 секунды Почему максимум 2048 файлов и где подправить чтобы это константа стала намного больше? --------------------
Я не играю в шахматы - в шахматах я борюсь. А.А.Алехин |
||||
|
|||||
| fry |
|
||||||||||||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 257 Регистрация: 4.10.2006 Репутация: нет Всего: 3 |
допустим, что fd2 == реальному файловому дескриптору
допустим, что fd2 == реальному файловому дескриптору, но уже другому. Вопрос: первое значение дескриптора где? Ответ: нигде. +1 к незакрытым дескрипторам
Чем "лечить" последствия надо подумать причину возникновения проблемы. В проге, как я понимаю, должно быть открыто только 2 файла одновременно. Спрашивается, зачем надо делать максимальное значение открытых файлов еще больше при условии, что прога заведомо неправильно работает? Добавлено через 4 минуты и 16 секунд Функция обработки явно сильно перегружена. Для избежания ошибок ее хорошо бы разделить на несколько частей, занимающихся выполнением конкретной функции, а не всех сразу. Меньше будет ошибок. Также хорошо если будет выполняться последовательность выделил "переменную - попользовался - забыл о ней", т.е. надо стремиться к минимуму глобальных переменных (как в смысле глобальных, так и в смысле переменных, используемых на протяжении многих строк кода). |
||||||||||||
|
|||||||||||||
| jimbo |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 180 Регистрация: 18.6.2009 Где: Южно-Сахалинск Репутация: нет Всего: нет |
отбой.. решение - не использовать _open
--------------------
Я не играю в шахматы - в шахматах я борюсь. А.А.Алехин |
|||
|
||||
| fry |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 257 Регистрация: 4.10.2006 Репутация: нет Всего: 3 |
Правильно.... Н.х все windows'ы и MSDN'ы. (ШУЧУ КОНЕЧНО!) |
|||
|
||||
![]()
|
| Правила форума "С++:Общие вопросы" | |
|
|
Добро пожаловать!
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C/C++: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |