Открытие файла в эксклюзивном режиме
От: machinehead  
Дата: 23.11.04 07:00
Оценка:
Стоит такая задача:

Нужно в unix при просмотре каталога определить файлы, которые в этот каталог копируются внешним приложением, т.е. пишутся и еще не закрыты (слежение за изменением размера не покатит). Интересуют ОСы солярис, линукс и чпукс.

Как это сделать я не знаю. В Windows достаточно попытаться открыть файл в эксклюзивном режиме и становится понятно, что файл уже кем-то открыт. В unix'е можно воспользовать fcnt с флагом F_SHARE. Но это будет добровольная блокировка, что не устраивает, т.к. обязывает все внешние приложения пишущие в данный каталог использовать fcnt с флагом F_SHARE (приложения могут быть от сторонних производителей).

Полагаю, что одинакового решения для всех unix'ов нет, и на каждой платформе нужно использовать свой подход. Если кто-то с по добной проблемой встречался, подскажите пожалуйста (или хотя бы подскажите в какую сторону копать).

P.S. Если это на что-то влияет, то чаще всего проверяемый каталог открыт для доступа по SMB через samba.
Re: Открытие файла в эксклюзивном режиме
От: FrIcE http://www.utmn.ru/~frice
Дата: 26.11.04 12:50
Оценка:
Здравствуйте, machinehead, Вы писали:

M>Стоит такая задача:


M>Нужно в unix при просмотре каталога определить файлы, которые в этот каталог копируются внешним приложением, т.е. пишутся и еще не закрыты (слежение за изменением размера не покатит). Интересуют ОСы солярис, линукс и чпукс.


M>Как это сделать я не знаю...


Есть такая хорошая OpenSource софтина — FAM (File Ateration Monitor), работает под любыми осями. Предоставляет данные об открытии/закрытии/изменении файлов, думаю подойдёт.
... << RSDN@Home 1.1.3 stable >>
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.