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