Я занимаюсь разработкой своей программы для Linux, есть ли программный способ определить, когда другое приложение создает / копирует файл в / в определенную папку. Я хочу обнаружить новый файл так же быстро, как он создан, и я хотел бы обработать файл.
Насколько я исследовал, я могу сделать это с помощью inotify. Есть ли лучшие альтернативы?
inotify — это правильный API, предоставляемый ядром Linux. Ваш инструментарий может иметь удобство на вершине, например, KDirWatch
из libkdecore, но внутри используется inotify.
Использование API из инструментария — хорошая идея, если ваша программа кроссплатформенная.
http://www.highscore.de/boost/dir_monitor.zip на http://en.highscore.de/cpp/boost/asio.html является кроссплатформенным решением C ++ Boost, хотя я еще не пробовал.
http://boost.2283326.n4.nabble.com/ASIO-file-monitoring-help-td4645105.html если код использует его, что неверно, исправление выглядит так, чтобы сделать еще несколько объектов, которые, как предполагал автор, могут быть временными постоянными.
http://man7.org/linux/man-pages/man7/fanotify.7.html это еще один вариант
Это хорошая статья, которая суммирует все методы http://www.lanedo.com/filesystem-monitoring-linux-kernel/