gul_tech (gul_tech) wrote,
gul_tech
gul_tech

Атомарное создание файла

Почему в позиксе нет функции flink(int fd, const char *name)?
Её отсутствие не даёт возможности атомарного создания файла с нужным содержимым. Чтобы можно было создать inode без имени, наполнить его, и присвоить имя только когда он уже готов для дальнейшей обработки. Нет - нужно временное имя, потом rename(), плюс чистка от временных файлов, образовавшихся при обрыве связи, защита от обработки временных файлов, и так при каждом cp, scp, ftp, wget... :-(

Кстати, правильно ли я понимаю, что tmpfile() реализуется как неатомарная последовательность open()+unlink(), или есть syscall, создающий безымянный inode на указанном разделе?
Subscribe

  • Рейтинг провайдеров

    Изменение позиций в топе как России, так и Украины. ReTN и ITSystems уступили лидерство. Сейчас среди российских провайдеров по размеру клиентского…

  • Рейтинг провайдеров

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

  • Рейтинг провайдеров - графики

    Сделал рисовалку графиков на основе рейтинга провайдеров. Вот пример её работы: Видны отдельные пики - это из-за крупных роутликов какой-то…

  • Post a new comment

    Error

    default userpic

    Your IP address will be recorded 

    When you submit the form an invisible reCAPTCHA check will be performed.
    You must follow the Privacy Policy and Google Terms of use.
  • 2 comments