Intereting Posts
Как настроить таргетинг на устройства xxxhdpi в файле манифеста Android? Как решить эту проблему «Содержимое адаптера изменилось, но ListView не получил уведомление»? IndeterminateProgressBar в стиле ActionBar – проблема с заполнением Улавливает ли какое-то конкретное исключение дешевле, чем ловить общий? Проблемы MediaRecorder при запуске захвата видео на Android Синхронизация локального SQLite от Android с Firebase Как реализовать расширяемые элементы с LinearLayoutManager (представленный с Android L) Как я могу сделать свои кнопки большими Spinner с пустым выбором по умолчанию Как отправить логическое или целочисленное значение с помощью волейбола Группа сортировки Android CoordinatorLayout пользовательское поведение с AppBarLayout Hex Colors на Android – это 8 цифр. Как? В чем разница между #FFFFFF и # FFFFFF00 TextView подчеркивает номер телефона и гиперссылку Чтение штрих-кода Delphi xe7, событие после намерения не запускается

Быстрое открытие тысяч файлов в linux / c

Я делаю сканер SDCARD, который сканирует каждую папку и файл изображения.

Я использую C-код и используя opendir, readdir, fopen API для перечисления каталога и файла. У меня есть dirent, DIR переменные.

Проблема в fopen () занимает слишком много времени (300 секунд для 10000 файлов), в то время как движение режиссера занимает ~ 25 секунд.

Есть ли какой-либо API, который позволяет мне ускорить работу с открытым файлом, используя handle, dir_ino или подобное, чтобы я мог открыть файл с помощью дескриптора каталога или аналогичного.

До сих пор я смотрел n пытался использовать dirent-> dir_ino, DIR *, но не повезло.

Я стремлюсь к низкоуровневому api, который занимает меньше времени, чем fopen.

Редактирование будет fts и ftw apis полезным? Они, по-видимому, связаны только с каталогом перемещения … любым другим хаком или методом?

Открыта только функция «низкого уровня»

 int fd = open(dirent->d_name, O_RDONLY); 

Хотя, fopen не должно быть намного медленнее.