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

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

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

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

P.S. Если это на что-то влияет, то чаще всего проверяемый каталог открыт для доступа по SMB через samba.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.