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