В среде POSIX я хочу удалить файл с диска, но перед удалением вычислить его контрольную сумму, чтобы убедиться, что он не был изменен. Достаточно ли блокировки? Должен ли я открыть его, отключить, вычислить контрольную сумму, а затем закрыть (чтобы ОС могла удалить свой индекс)? Есть ли способ убедиться, что ни один другой процесс не имеет дескриптора открытого файла в файле?
Чтобы дать немного контекста, код выполняет синхронизацию файлов между хостами, и есть возможность потери данных, если удаленный хост удаляет файл, но файл изменяется локально.