LINUX.ORG.RU

запись в каталог несколькими процессами


0

1

Предложим что есть несколько процессов которые одновременно пишут в один каталог ( на perl ). Нужно чтобы там создавались файлы ( с любыми именами )главное чтобы эти имена не совпадали. Как проверять сущ уже такой файл или нет ? будет ли работать в данном случае конструкция :

Если файл не сущ тогда создавать новый ? Т е не будет ли такой ситуации когда за время проверки этого условия ( хоть и мизерного времени ) другой процесс создаст файл с таким именем ?

★★☆☆

Примитивно, но просто: сделать процесс, который будет заниматься только записью, и писать только через него.

x3al ★★★★★
()
Ответ на: комментарий от x3al

тогда уже проще сделать просто менеджер блокировок с ключами в виде имён файлов. Но лучше взять как ниже предлагает анонимус, это ещё проще.

mashina ★★★★★
()

Открывать файл с O_EXCL, как уже написали. Вряд ли есть что-то проще.

undet
()

mkstemp() делает одним ударом всё, что нужно. Под капотом тот же O_CREAT|O_EXCL.

const86 ★★★★★
()

move атомарен, так что создавай в другом каталоге, а потом делай move.

dimon555 ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.