![]() |
Модераторы: korob2001, ginnie |
![]() ![]() ![]() |
|
study |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 126 Регистрация: 20.9.2004 Репутация: нет Всего: нет |
Привет Всем!
Народ, хочу проконсультироваться по блокировки файла. У меня два скрипта обращаются (чтение/запись) с файлом. Мне надо, чтобы они вместе не работали. Делаю я так
Вопрос. Будит ли этот код ожидать пока файл освободиться и сколько? |
|||
|
||||
chaos |
|
|||
![]() Серийный программист ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2979 Регистрация: 7.7.2004 Где: Екатеринбург Репутация: 6 Всего: 44 |
вот посмотри пример
|
|||
|
||||
study |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 126 Регистрация: 20.9.2004 Репутация: нет Всего: нет |
А здесь же по-моему, только файл delivery.sem блокируеться, а непосредственно delivery.txt нет, или я не прав
![]() |
|||
|
||||
chaos |
|
|||
![]() Серийный программист ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2979 Регистрация: 7.7.2004 Где: Екатеринбург Репутация: 6 Всего: 44 |
прав, он как раз и сигнализирует о том что файл заблокированн
|
|||
|
||||
study |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 126 Регистрация: 20.9.2004 Репутация: нет Всего: нет |
значит, если другая программа захочеть открыть файл delivery.txt ей это удастся
![]() Мой пример вроде работает, только я не доконца его понимаю. |
|||
|
||||
sharq |
|
|||
![]() Perl Liker ![]() ![]() Профиль Группа: Участник Сообщений: 841 Регистрация: 13.12.2004 Где: Ростов-на-Дону Репутация: 23 Всего: 28 |
study это стандартная блокировка файла (из Perl-рецептов).
Скрипт будет ждать до тех пор, пока процесс, поставивший блок, не завершиться, т.е. пока не закончится работа с файлом, как только процесс завершился, скрипт получает доступ к файлу. Единственное но: если ты с помощью какого-нибудь редактора откроешь этот файл, например, на запись, то не создасться процесс, который заблокирует этот файл, и этот скрипт сразу получит доступ к записи и запишит то, что нужно... Если интересно можешь, посмотреть вариант блокировки файлов без использование функции flock - одноименная статья лежит в faq'e. ![]() -------------------- [color=gray]There's More Than One Way To Do It[/color] |
|||
|
||||
study |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 126 Регистрация: 20.9.2004 Репутация: нет Всего: нет |
Спасибо почитаю
![]() |
|||
|
||||
rcdimon |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 766 Регистрация: 12.7.2004 Где: Москва Репутация: 1 Всего: 2 |
Обычно блокировка идет через семафор. Файл- семафор. И блокируется он, а не непосредственно тот с которым работаешь. Потому что могут произойти ошибки и при блокеровке и при проверки ее. И содержимое файла может быть нарушено. А в Файле-семафоре- содержимое не играет роли.
|
|||
|
||||
![]() ![]() ![]() |
Правила форума "Perl" | |
|
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, korob2001, sharq. |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Perl: Общие вопросы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |