процесс, работающий с привилегиями root в Ma c, блокирует файл, выполняет некоторую работу с ним, а затем разблокирует его.
Проблема, с которой я сталкиваюсь, заключается в том, что ни одна из функций блокировки, которые я пытался предотвратить удаление файла, даже если он заблокирован. Таким образом, кто-то может удалить текущий файл сразу после блокировки и создать новый файл с тем же именем.
Есть ли способ решить эту проблему? Я пробовал flock
, lockf
, fopen
, fcntl
.
Один из способов - использовать chflags uchg <filename>
, но я не уверен, целесообразно ли это использовать в программе на C ++