The OpenNET Project / Index page

[ новости /+++ | форум | wiki | теги | ]

Методы блокировки файлов в Unix (lock gcc)


<< Предыдущая ИНДЕКС Поиск в статьях src Установить закладку Перейти на закладку Следующая >>
Ключевые слова: lock, gcc,  (найти похожие документы)
Date: Sat, 19 Jun 2004 19:49:36 +0600 From: Yar Tikhiy <yar@comp.chem.msu.su.> Newsgroups: ftn.ru.unix.bsd Subject: Методы блокировки файлов в Unix AM> Граждане!!! Hу Будьте милосердны, скажите какими средствами блокировать AM> открытые файлы. А то перенес файл сервер с виндовса на FreeBSD и за два AM> дня три потерянных файла. AM> Пользователи привыкли что если файл кем то открыт то он у них AM> открывается в режиме только чтение, а тут такая подстава - хоть обратно AM> на виндовс откатывайся. AM> Вы мне только направление скажите - ман чего, или читать там-то, а AM> дальше я найду. Почему это ты в повторном вопле об NFS умолчал? ;-) AM> Hе дайте погибнуть Что тут можно сказать? OpenOffice sucks, коль он не умеет сам блокировать свои файлы (то, что называется блокировка на уровне приложения -- application-level file locking). Ведь давно известно, что: а) в большинстве Unix нет таких средств блокировки файлов, чтобы файл вообще нельзя было открыть; б) предлагаемые разными интерфейсами блокировки на уровне системы (flock, lockf, fcntl) являются "совещательными" (advisory), то есть, они могут закрыть доступ к файлу или его части только тем процессам, которые послушно используют ту же схему блокировки -- зловредный или невежественный процесс все равно может открыть файл и делать с ним все, что заблагорассудится; в) далеко не во всех системах Unix, предлагающих несколько интерфейсов к блокировке на уровне системы, эти интерфейсы могут правильно взаимодействовать друг с другом, когда разные процессы используют разные вызовы: в FreeBSD, к примеру, с этим все в порядке, а вот в Linux, насколько мне известно, с некой версии ядра flock и fcntl больше не видят блокировок друг друга; г) даже эти средства блокировки на уровне системы чаще всего не работают по NFS, потому что блокировка в NFS до сих пор остается незавершенным экспериментом (как вам этот абзац из rpc.lockd(8) FreeBSD?): The current implementation provides only the server side of the protocol (ie. clients running other OS types can establish locks on a FreeBSD fileserver, but there is currently no means for a FreeBSD client to establish locks). Разве что если все Unix в сети будут называться Solaris, блокировка по NFS, надеюсь, заработает. В твоем конкретном случае можно пересадить всех юзеров за Windows в надежде, что тогда они хотя бы через Samba друг друга блокировать будут. Или поставить перед каждым по X-терминалу (например, запустив X-серверы под Unix и Windows) и сказать юзерам, чтобы те запускали свои OpenOffice на одном и том же хосте, опять-таки в надежде, что OpenOffice тогда сможет использовать "совещательные блокировки" (на ум приходит красивое словосочетание "сервер приложений"). А может, я зря на OpenOffice гоню и все дело в его неудачной настройке. Hо тогда, опять же, копать надо в сторону "application-level file locking". Прошу прощения за многословность -- просто мне кажется, что данная проблема затрагивает самые разные аспекты использования Unix, от построения пользовательских сетей до написания прикладных программ. -- Yar

<< Предыдущая ИНДЕКС Поиск в статьях src Установить закладку Перейти на закладку Следующая >>

 Добавить комментарий
Имя:
E-Mail:
Заголовок:
Текст:




Спонсоры:
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2021 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру