Хабр Курсы для всех
РЕКЛАМА
Практикум, Хекслет, SkyPro, авторские курсы — собрали всех и попросили скидки. Осталось выбрать!
как тяжела участь Dropbox и подобных программ, которым требуется со всем этим уживатьсяВ питоне же вроде был платформонезависимый интерфейс для слежения за файлами?
В питоне же вроде был платформонезависимый интерфейс для слежения за файлами?
И да: почему пример для Windows — на C++, а для остальных ОС — на C?
И что вы имеете в виду под «простейшей реализацией», что должны уметь?
В той же версии для MacOs я не увидел никаких проверок на ошибки инициализации
И гугл находит более простые версии для работы с inotify
Вы уверены, что они позволяют рекурсивно отслеживать изменения в директории, не пропуская при этом события?
Bugs
There are race conditions in the recursive directory watching code which can cause events to be missed if they occur in a directory immediately after that directory is created. This is probably not fixable.
It is assumed the inotify event queue will never overflow.
This is probably not fixable.
fprintf(stderr, "Inotify reported end-of-file. Possibly too many " "events occurred at once.\n"); // что значит "possibly"..? что мешало заглянуть в документацию? ... niceassert( first_byte <= bytes, "ridiculously long filename, things will " "almost certainly screw up." ); ... niceassert( (long)((char *)&event[0] + sizeof(struct inotify_event) + event[0].len) <= (long)ret, "extremely unlucky user, death imminent" );
#pragma comment(linker, "/SUBSYSTEM:console")
указан, так и Character Set — скажите, что не Unicode :)#undef UNICODE
#undef _UNICODE
Rsync через ssh может давать весьма ощутимую задержку в несколько секунд при соединении с сервером, если сервер находится довольно далеко.Учите матчасть. В ssh есть вещь называемая ControlMaster, которая как раз и позволят устанавливать одно соединение и реиспользовать его.
while true; do rsync $dir $host:$dir; done
Слежение за изменениями в директории: как это делается в разных ОС