Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Максимальное число одновременно открытых файлов, Как обойти это ограничение? 
:(
    Опции темы
vlad2
Дата 10.8.2011, 18:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 22
Регистрация: 19.7.2011

Репутация: нет
Всего: нет



Для открытия файла используется функция fopen. Если количество одновременно открытых файлов превышает максимум, то fopen не работает. По умолчанию установлено ограничение на 50 файлов:
в stdio.h стоит "#define FOPEN_MAX (_NFILE_)", а в _nfile.h - "#define _NFILE_ 50". 
Как обойти это ограничение, или увеличить порог?
Спасибо.
PM MAIL   Вверх
Alca
Дата 10.8.2011, 19:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 3993
Регистрация: 14.6.2006

Репутация: 25
Всего: 50



Скорее всего, никак

Добавлено @ 19:02
А билдер здесь где?

Добавлено @ 19:02
Цитата

The running environment supports at least FOPEN_MAX files open simultaneously;


Это сообщение отредактировал(а) Alca - 10.8.2011, 19:02


--------------------
PM WWW ICQ Skype Jabber   Вверх
vlad2
Дата 10.8.2011, 19:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 22
Регистрация: 19.7.2011

Репутация: нет
Всего: нет



Цитата(Alca @  10.8.2011,  19:00 Найти цитируемый пост)
А билдер здесь где?

Программирую на BCB 2006. В моём случае другие функции не подходят или почти не подходят. 50 файлов - это старое ограничение, странно, что оно ещё осталось даже в RAD Studio XE.

PM MAIL   Вверх
Alca
Дата 10.8.2011, 19:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 3993
Регистрация: 14.6.2006

Репутация: 25
Всего: 50



У дебилдера есть  что-то вроде TFilestream

Добавлено через 4 минуты и 38 секунд
Цитата

странно


Linux user-exm-5 2.6.38-10-generic #46-Ubuntu SMP Tue Jun 28 15:05:41 UTC 2011 i686 i686 i386 GNU/Linux

Код

define FOPEN_MAX 16



--------------------
PM WWW ICQ Skype Jabber   Вверх
vlad2
Дата 11.8.2011, 10:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 22
Регистрация: 19.7.2011

Репутация: нет
Всего: нет



Цитата(Alca @  10.8.2011,  19:33 Найти цитируемый пост)
У дебилдера есть  что-то вроде TFilestream
Да, есть. Таких ограничений на открытые файлы там нет, но есть большой минус - отсутствие построчного считывание текстового файла, в который каждую секунду добавляются новые строки.

PM MAIL   Вверх
Alca
Дата 11.8.2011, 10:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 3993
Регистрация: 14.6.2006

Репутация: 25
Всего: 50





--------------------
PM WWW ICQ Skype Jabber   Вверх
vlad2
Дата 11.8.2011, 11:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 22
Регистрация: 19.7.2011

Репутация: нет
Всего: нет



Спасибо, Alca, за ссылку. Первые два способа мне не подходят по причине ограничений на количество одновременно открытых файлов (50), а в TFilestream нет построчного считывания, нужны дополнительные действия, которые замедлят обработку: каждую секунду в открытые по сети файлы добавляются новые строки (другим пользователем), и мне нужно сразу же отображать эти изменения. И таких файлов много, пока около 60, а будет больше. 
PM MAIL   Вверх
Alca
Дата 11.8.2011, 12:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 3993
Регистрация: 14.6.2006

Репутация: 25
Всего: 50



WInAPI пробывал?

Добавлено через 3 минуты и 4 секунды
Цитата

нет построчного считывания

так сделай


--------------------
PM WWW ICQ Skype Jabber   Вверх
vlad2
Дата 11.8.2011, 12:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 22
Регистрация: 19.7.2011

Репутация: нет
Всего: нет



Цитата(Alca @  11.8.2011,  12:45 Найти цитируемый пост)
WInAPI пробывал?
 Нет, но построчного считывания там тоже нет.

Цитата(Alca @  11.8.2011,  12:45 Найти цитируемый пост)
так сделай
Только это и остаётся.

PM MAIL   Вверх
Alca
Дата 11.8.2011, 18:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 3993
Регистрация: 14.6.2006

Репутация: 25
Всего: 50



Допили это http://www.viksoe.dk/code/atlfile.htm под себя


--------------------
PM WWW ICQ Skype Jabber   Вверх
vlad2
Дата 11.8.2011, 19:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 22
Регистрация: 19.7.2011

Репутация: нет
Всего: нет



Спасибо, Alca, посмотрю.  Список функций и исходник глянул, но построчного считывания там тоже, вроде, нет, надо ручками.
Сейчас моя задача сильно упростилась - строки постоянной длины, поэтому обошёлся просто считыванием буфера постоянной длины. Использую функции из SysUtils (подобные TFileStream). Уже проверил, работает.
Потом, если понадобится сделать универсальную задачу, буду думать.
Думаю, тему можно пока закрыть. Спасибо за помощь.
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++ Builder"
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по С++ Builder обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Настоятельно рекомендуем заглянуть в DRKB (Delphi Russian Knowledge Base) - крупнейший в рунете сборник материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Rrader.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C++ Builder | Следующая тема »


 




[ Время генерации скрипта: 0.0498 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.