RU/2: Форум. Общение пользователей и разработчиков OS/2 (eCS). : Установка атрибутов файлов из Rexx


Список сообщений | Написать новое | Ответить на сообщение | Домой Поиск:
Предыдущее сообщение | Следующее сообщение
From : Aleksey Tarasow, 2:5053/57, librexx.ru azimut21.ru azimut64.ru
To : Igor Vaskov
Subj : Установка атрибутов файлов из Rexx

> > В Regine не поддерживается установка атрибутов файлов при поиске SysFileTree, о чем прямо написано в документации. Программа не останавливается по ошибке, но и не выполняет установку атрибутов. Возможно альтернативные версии библиотеки ведут себя по другому, не проверял так как важна совместимость.
> > В настоящее время нашел только один способ обойти проблему, использовать команду системы «attrib», она есть везде. Но очень тормозная. Так что время выполнения скриптов увеличивается.
> > Такой вопрос, а есть иной способ установить флаги файлов из Rexx, кроме SysFileTree и attrib?
> Еще со времен DOS и Нетвари существует универсальный и простой, а главное правильный, поскольку атомарный, принцип лочки файлов. А именно переименование. Команда rename выполняется атомарно на всех существующих системах с очень данных времен.
> Я в свое время написал большое количество распределенных многозадачных систем именно на этой технологии. И лучшего для файлов пока еще не придумали.
> Коротко - при захвате файла процесс его переименовывает и работает. Как закончил, может переименовать обратно. Все остальное - от лукавого.

А если важно имя файла? Например, у всех файлов стартерное расширение "txt", файлы с иным расширением могут находиться в этом месте, но сознательно игнорируются. А в имени файла закодирована дата. При старте скрипт ищет все файлы с расширением "txt" и с нужной датой (датами) в имени, и дальше ведет отработку найденных файлов.

Ситуация 1: некий скрипт начал работу с файлом, и изменил расширение на "tmp". Результат: данный файл не был найден при поиске, и как следствие не отработается. Хотя на момент предполагаемой отработки, он мог уже освобожден.
Ситуация 2: Скрипт залочил файл путем создания флага "имя_stop.txt". Исходный файл найден при поиске, перед началом отработки нашли лочку и ждем. Опа - лочка пропала, ставим свою. А что будет, если два или более скрипта работают почти синхронно (разве это невозможно)? То есть отсутствие лочки увидели сразу два скрипта, и оба начали ставить свою лочку. Мы думали обходить это двух уровненной лочкой, по двум атрибутам и произвольной паузой (для раз синхронизации) между первой и второй лочкой.

Пока меня очень заинтересовали семафоры. Разбираюсь по чуть-чуть.
Но начался рабочий год... и что-то все резко его начали. Обычно народ просыпался только к 15-17 числу...

Wed 14 Jan 2015 21:11 Mozilla/5.0 (Windows NT 6.3; WOW64; rv:35.0) Gecko/20100101




Programmed by Dmitri Maximovich, Dmitry I. Platonoff, Eugen Kuleshov.
25.09.99 (c) 1999, RU/2. All rights reserved.
Rewritten by Dmitry Ban. All rights ignored.