Мне нужно создать файл, если он не существует, таким образом, что другой процесс, пытающийся создать этот файл, потерпит неудачу.Мне нужно, чтобы файл считался «созданным» еще до того, как процесс создания завершил запись фактических данных в него.
Я прочитал о флаге O_EXCL
в open()
, так что, похоже, решение существует, у меня естьоднако несколько вопросов:
- У вас есть опыт работы с этой техникой?Насколько это хорошо?(Я полагаю, у меня не может быть атомарности на уровне БД, но достаточно хорошо ... ну, достаточно)
- следует ли мне немедленно закрыть файл после
open()
, чтобы он считался созданным, изатем снова откройте его для записи? - Есть ли какие-нибудь тонкости, о которых нужно знать?