Как заблокировать файл в linux / unix с помощью java-программы?

Мне нужно заблокировать файл в ОС unix / linux. Я искал в Google и читал о java.nio.channels Filelock и Reentrant File Lock. Но оба работают в Windows, но не в unix. Есть ли другой способ реализовать блокировку файла в unix? Мы будем очень признательны за любой образец кода.

Спасибо, Виньеш


person Community    schedule 20.02.2014    source источник
comment
есть ли способ сделать блокировку файла, кроме файловой блокировки java.nio.channels?   -  person    schedule 20.02.2014
comment
По этой ссылке Unix locks are ADVISORY. stackoverflow.com/questions/1040828/   -  person Subir Kumar Sao    schedule 20.02.2014
comment
Не могли бы вы подробнее рассказать о требовании. Какой замок вы хотите. Вы хотите предотвратить удаление файла или заблокировать его, чтобы другие процессы не могли его записать / прочитать?   -  person aryann    schedule 20.02.2014
comment
Мне нужна блокировка, которая может помешать другому процессу читать операцию записи   -  person    schedule 20.02.2014
comment
Нет такой вещи; блокировки являются рекомендательными. Если другой процесс не взаимодействует, используя те же примитивы / методы блокировки, что и ваш процесс, он может получить доступ к файлу сколько угодно, и вы ничего не можете с этим поделать.   -  person fge    schedule 20.02.2014
comment
но не в unix [sic] это утверждение неверно.   -  person Raedwald    schedule 09.05.2014


Ответы (1)


вы можете посмотреть этот (не связанный с Java) пост - https://unix.stackexchange.com/questions/20104/is-there-any-way-to-prevent-deletion-of-sure-files-from-user-own-directory.

он содержит 2 решения - либо разделение файла корнем и установка липкого бита, либо использование специальных атрибутов ext2 / 3/4.

оба этих решения можно выполнить из java с помощью System.exec ()

person radai    schedule 20.02.2014