Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Проблемы с доступом к файлу

5.1K
12 января 2004 года
Azatrix
6 / / 21.10.2003
Нет больше сил париться со своим тормозным чатом.
Пример одновременного выполнения двух одинаковых скриптов:
1-ый. $filer=fopen($fn,"r");
2-ой. $filer=fopen($fn,"r");
1-ый. flock($filer,2);
2-ой. flock($filer,2); // Вот здесь вопрос!
...
Знающие люди, подскажите плиз, как поведет себя второй скрипт, когда попытается поставить защиту уже на закрытый файл? Будет ждать, пока файл не будет открыт первым скриптом?

А в таком случае что:
1-ый. $filer=fopen($fn,"r");
1-ый. flock($filer,2);
2-ой. $filer=fopen($fn,"r"); // Как второй скрипт поведет себя на этой строчке кода?

Заранее респекты за ответы...
4
13 января 2004 года
mike
3.7K / / 01.10.2002
Почитай документацию. Функция [phpdoc]flock[/phpdoc] работает по разному, в зависимости от ключей.

В твоем случае функция flock блокирует файл, и никто другой в него писать не сможет. Если файл уже заблокирован, то flock ждет пока файл не освободится.

Лучше измени структуру данных так, чтоб flock использовался как можно реже. А еще лучше используй БД.
250
13 января 2004 года
Joker
1.4K / / 20.02.2000
Цитата:
Originally posted by mike
Почитай документацию. Функция [phpdoc]flock[/phpdoc] работает по разному, в зависимости от ключей.

В твоем случае функция flock блокирует файл, и никто другой в него писать не сможет. Если файл уже заблокирован, то flock ждет пока файл не освободится.

Лучше измени структуру данных так, чтоб flock использовался как можно реже. А еще лучше используй БД.


http://php.spb.ru/php/flock.html

5.1K
17 января 2004 года
Azatrix
6 / / 21.10.2003
Цитата:
Originally posted by mike
Почитай документацию. Функция [phpdoc]flock[/phpdoc] работает по разному, в зависимости от ключей.

В твоем случае функция flock блокирует файл, и никто другой в него писать не сможет. Если файл уже заблокирован, то flock ждет пока файл не освободится.

Лучше измени структуру данных так, чтоб flock использовался как можно реже. А еще лучше используй БД.



А что будет делать функция fopen, когда попытается получить доступ (например, fopen($filename,"r") ) к заблокориванному другим скриптом файлу? Тоже будет ждать?

5.1K
17 января 2004 года
Azatrix
6 / / 21.10.2003
Народ!
Неужели никто не знает? :)
4
18 января 2004 года
mike
3.7K / / 01.10.2002
Цитата:
Originally posted by Azatrix
Народ!
Неужели никто не знает? :)



Ну дали же две ссылки. Там все написано. fopen сработает независимо от того заблокирован файл или нет.

5.1K
18 января 2004 года
Azatrix
6 / / 21.10.2003
А как поведет себя функция file() при попытке прочитать такой же файл, заблокированный другим скриптом?

Например,
 
Код:
1-ый скрипт: $filer=fopen($fn,"r");
1-ый скрипт: flock($filer,2);
2-ый скрипт: $file=file($fn); // ВОТ ЗДЕСЬ! :)
4
18 января 2004 года
mike
3.7K / / 01.10.2002
Цитата:
Originally posted by Azatrix
А как поведет себя функция file() при попытке прочитать такой же файл, заблокированный другим скриптом?

Например,
 
Код:
1-ый скрипт: $filer=fopen($fn,"r");
1-ый скрипт: flock($filer,2);
2-ый скрипт: $file=file($fn); // ВОТ ЗДЕСЬ! :)



Слушай, это все замечательно написано в мануале, а что не написано, то проверяется опытным путем.

Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог