какая техника поиска реализована, когда мы ищем файл, используя fopen () в c - PullRequest
0 голосов
/ 13 мая 2018

Я имею дело с очень большим количеством текстовых файлов (от 10 ^ 5 до 10 ^ 6 файлов).На каждой итерации я хочу выбрать случайное число и иметь возможность загружать содержимое связанного текстового файла в буфер.

Теперь у меня вопрос, какие методы поиска используются для поиска файла?

1 Ответ

0 голосов
/ 13 мая 2018

Как уже упоминалось в комментариях, это зависит от ОС.Насколько я знаю, в стандарте C даже не упоминаются каталоги.

Если вы хотите эффективную технику поиска, вы должны реализовать ее самостоятельно.Если вы много пишете, вы можете как-то реализовать это, используя ОС для поиска иерархий каталогов со средней сложностью O (n * log (n)).

Если в основном только для чтения, это будет примерно какпросто и намного быстрее поместить файлы в один файл, рассматривая его как виртуальную файловую систему, и ваше приложение будет выполнять поиск по нему, используя любой алгоритм поиска, который вы выберете.Скорость зависит от меньшего количества вызовов ОС и файловой системы.Запись становится более серьезной проблемой, поскольку FILE* не очень хорошо вставляет вставки без значительного перемещения или памяти.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...