Форум: "Потрепаться";
Текущий архив: 2005.07.25;
Скачать: [xml.tar.bz2];
Внизphp Найти похожие ветки
← →
ArMellon © (2005-07-03 15:51) [0]Что вернет ф-ция unlink если ее вызвать в моммент чтения файла с
flock?
запрос на удаление встанет в очередь или ф-ция просто вернет false?
← →
Uncle Archi © (2005-07-03 16:56) [1]насколько я помню принцип действия flock, все операции становятся в очередь, если их вызывать из другого скрипта. а если из того же, что ты вызвал flock, видимо должна вернуть false
← →
Uncle Archi © (2005-07-03 16:57) [2]только я это по Perl помню, но так как php на Perl писался, основное не должно отличаться.
← →
Uncle Archi © (2005-07-03 17:00) [3]P.S. изначально на perl писался, извиняюсь...
← →
Uncle Archi © (2005-07-03 21:08) [4]Не, я ошибался...
Как использовать flock
К примеру, скрипт который записывает имена вызывающих хостов в файл. (На деле такой список, конечно, можно получить из журнала регистрации web-сервера).
lock_exm.pl
#!/usr/bin/perl
use Fcntl; # Импорт констант
open (HOSTS, ">>hosts.log");
# Файл открыт для добавления записи
flock(HOSTS, LOCK_EX);
# Теперь файл заблокирован: Если любой другой
#скрипт тоже вызовет flock на
# этом файле, его flock не вернет
#управление в программу, пока мы не
# разблокируем файл. Обратите внимание:
#flock -- декларативная функция, если
# один из скриптов ее не использует при записи,
#то вся ваша блокировка не работает.
print HOSTS $ENV{REMOTE_HOST}, "\n"; # записали строку
close HOSTS; # Файл при закрытии разблокируется автоматически
# Вывести сообщение для пользователей
print "Content-Type: text/plain\n\n";
print "Название вашего хоста записано\n";
Страницы: 1 вся ветка
Форум: "Потрепаться";
Текущий архив: 2005.07.25;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.01 c