Возникла идея сделать такую вещь...
Перехватывать функцию созданния файла и его
удаленния в указаной директории.
При созданнии файла записывать куда-нибуть (делать лог)
че в директории есть такой файл в случае его удаленния также
удалять запись о его существовании в логе а при поиске
использовать этот лог.Понимаю что идея наверно не новая, по этому прошу
может кто-то знает чето подобное, подскажите чеб
не создавать колесо заново.
>Возникла идея сделать такую вещь...
>Перехватывать функцию созданния файла и его
>удаленния в указаной директории.
>При созданнии файла записывать куда-нибуть (делать лог)
>че в директории есть такой файл в случае его удаленния также
>удалять запись о его существовании в логе а при поиске
>использовать этот лог.
>
>Понимаю что идея наверно не новая, по этому прошу
>может кто-то знает чето подобное, подскажите чеб
>не создавать колесо заново.
В ядре есть dentry кэш, за счет которого поиск и так быстр. И такой лог не всегда актуален. Тоесть тебе надо будет пролистать сначала лог(а если он состоит из 10000 элементов), и если эл. не найден - тогда _все_равно_ проводить поиск по дереву директорий.
Можно использовать БД утилиты locate, перехватывать вызовы open(CREAT) и unlink, и модифицировать БД. Или, если это linux, то юзать inotify.
>В ядре есть dentry кэш, за счет которого поиск и так быстр.
>И такой лог не всегда актуален. Тоесть тебе надо будет пролистать
>сначала лог(а если он состоит из 10000 элементов), и если эл.
>не найден - тогда _все_равно_ проводить поиск по дереву директорий.Если мониторить постоянно то если логе не будет обнаруженна запись о файле то поиск по
дереву каталогов будет не актуальным ибо это все будет цеплятся на новый, пустой винт а
файлов(мелких) будет очень много и я думаю всеже будет быстрее пролистать лог какой бы он ни был...