Синхронизация независимых приложений. (Как проверить, был ли файл изменен другой программой во время выполнения)

Это проще объяснить на примере.

Когда 2 текстовых редактора редактируют один и тот же текстовый файл одновременно, когда один редактор сохраняет файл, другой понимает, что он был изменен, и просит сделать что-то.

Как можно получить сигнал о том, что файл был изменен вне программы?

Я работаю с C ++ (хотя я думаю, что это не важно) и Linux. (решение для окон тоже подойдет)

1

Решение

ISO-C ++ не предлагает эту функциональность, поэтому вы должны придерживаться того, что обеспечивает операционная система.

На Linux это было бы Inotify, на Windows вы бы использовали уведомления об изменении каталога.

2

Другие решения

① Проверьте временную метку файла как можно ближе перед записью. Если это не то, что было, когда вы последний раз открывали этот файл для чтения, то будьте осторожны!

Can Вы можете создать контрольную сумму файла и сравнить ее с ранее созданной.

③ Зарегистрируйтесь в системной службе, которая информирует вас о действиях с файлами. Это зависит от доброй воли используемой вами ОС; Если эта служба уведомлений не работает должным образом, ваши вещи не удастся. На Linux взгляните на Inotify.

1

По вопросам рекламы [email protected]