С поддержкой ACL в Mac OS X существует способ объявить файл как доступный для записи, но не удаляемый.
Это создает проблему с атомарными записями, поскольку текущая реализация из rename
в VFS delete
является уже существующей целью. Если у вас есть существующий файл, для которого у вас есть права на запись, возможно, не сможет атомарно записать в:
Просто подключите ACL, в котором указано deny delete
, и элементарная запись (например, реализованная различными API-интерфейсами Cocoa - например, NSArray writeToFile:atomically:
) завершится неудачно, тогда как неатомарная запись будет успешно выполнена.
Поскольку мое понимание низкоуровневого кода C довольно ограничено:
Возможна ли альтернативная реализация только с незначительными (вставьте ваше любимое определение «второстепенные») головными болями?
Спасибо
Daniel