Форум русскоязычного сообщества Ubuntu


Хотите сделать посильный вклад в развитие Ubuntu и русскоязычного сообщества?
Помогите нам с документацией!

Автор Тема: Не лочится файл  (Прочитано 852 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн kerfo

  • Автор темы
  • Новичок
  • *
  • Сообщений: 20
    • Просмотр профиля
Не лочится файл
« : 23 Февраля 2013, 18:19:11 »
Пытаюсь сделать так: lockf(ds, F_LOCK, 0);
Но она возвращает -1 и файл свободно открывается. Сам файл создается при запуске программы, поэтому точно существует.

Оффлайн VitalD

  • Активист
  • *
  • Сообщений: 509
    • Просмотр профиля
Re: Не лочится файл
« Ответ #1 : 23 Февраля 2013, 20:16:01 »

Оффлайн kerfo

  • Автор темы
  • Новичок
  • *
  • Сообщений: 20
    • Просмотр профиля
Re: Не лочится файл
« Ответ #2 : 23 Февраля 2013, 20:29:44 »
irant,
http://linuxdoc.ru/lockf.html
Хм... посмотрев ошибку в errno я понял, что указал при открытии файла только флаг создания. Теперь ошибки не возникает, однако, я все равно могу при работе программы открыть его в редакторе и изменить.

Оффлайн ArcFi

  • Старожил
  • *
  • Сообщений: 15189
    • Просмотр профиля
    • aetera.net
Re: Не лочится файл
« Ответ #3 : 23 Февраля 2013, 21:08:36 »
однако, я все равно могу при работе программы открыть его в редакторе и изменить.
И в чём проблема?
Главное, чтоб юзеры не могли менять чужие файлы.

Оффлайн kerfo

  • Автор темы
  • Новичок
  • *
  • Сообщений: 20
    • Просмотр профиля
Re: Не лочится файл
« Ответ #4 : 23 Февраля 2013, 21:18:32 »
однако, я все равно могу при работе программы открыть его в редакторе и изменить.
И в чём проблема?
Главное, чтоб юзеры не могли менять чужие файлы.
Эм... И в чем тогда смысл блокировки? Вообще про блокировку я узнал из самоучителя, где показано как сделать демона. Там демон создает файл и блокирует его, чтобы не допустить повторного запуска.   

---

Хотя при повторном запуске программы функция возвращает -1, значит файл все же блокируется. Но почему я тогда могу его изменить?
« Последнее редактирование: 23 Февраля 2013, 21:40:33 от irant »

Оффлайн ArcFi

  • Старожил
  • *
  • Сообщений: 15189
    • Просмотр профиля
    • aetera.net
Re: Не лочится файл
« Ответ #5 : 23 Февраля 2013, 21:43:55 »
И в чем тогда смысл блокировки?
Как работает блокировка на примере rsnapshot:
Цитата: man rsnapshot
If a lockfile exists when rsnapshot starts, it will try to read the file and stop with an error if it can't.  If it *can* read the file, it sees if a process exists with the PID noted in the file.  If it does, rsnapshot stops with an error message.  If there is no process with that PID, then we assume that the lockfile is stale and ignore it *unless* stop_on_stale_lockfile is set to 1 in which case we stop.

 

Страница сгенерирована за 0.025 секунд. Запросов: 21.