Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Скриптовые языки программирования > PHP
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 29.08.2009, 16:40   #1
POPOV
Форумчанин
 
Аватар для POPOV
 
Регистрация: 26.10.2007
Сообщений: 124
Восклицание Помогите понять функцию блокировки файла

Здраствуйте!
Вообщем пытаюсь сделать гостевую книгу, параллельно изучая книгу по PHP. В книге есть функция блокировки файла с циклом ожидания, чтобы данные передаваемые из формы не потерялись если файл куда они записываются будет временно заблокирован.

Вот она:
PHP код:
<?php
function blockir($myfile,$zap// в $myfile будет передаваться путь к файлу, в $zap - данные из поля для ввода сообщения.
{

    if(
$fl=fopen($myfile,"a"))  
    {
        for(
$j=0;$j<10;$j++)
        {
            if(
flock($fl,LOCK_EX)) break;
            else 
sleep(1);
        }
        
fwrite($fl,$zap);
        
flush($fl);
        
flock($fl,LOCK_UN);
        
fclose($fl);
        return 
true;
    }
    else
    {
        return 
false;
    }
}
?>
В первом условии проверяется, доступен ли файл ? Если он доступен, то запускаем цикл ожидания (макс. 10 сек) - ждём пока сможем заблокировать файл. */ Так зачем нам ожидать когда можно блокировать файл, если первое условие истинно, т.е файл доступен. Почему сразу не заблокировать файл просто написав "flock($fl,LOCK_EX);". А вот если файл недоступен (условие "if ($fl=fopen($myfile,$zap))" выдаёт false) , то уже запустить цикл ожидания... и до 10 сек. ждать пока файл освободится.

Незнаю понятно ли я поставил свой вопрос, попытайтесь плиз меня понять и объяснить зачем так делается )

Последний раз редактировалось POPOV; 29.08.2009 в 16:43.
POPOV вне форума Ответить с цитированием
Старый 29.08.2009, 17:26   #2
Metandrostenalon
Форумчанин
 
Регистрация: 03.04.2009
Сообщений: 108
По умолчанию

"В первом условии проверяется, доступен ли файл ?"

нет, эта функция не для этого -> is_writable()
php,javascript
Metandrostenalon вне форума Ответить с цитированием
Старый 29.08.2009, 18:31   #3
POPOV
Форумчанин
 
Аватар для POPOV
 
Регистрация: 26.10.2007
Сообщений: 124
По умолчанию

Metandrostenalon
А что не для этого ? и что такое is_writable() ?
POPOV вне форума Ответить с цитированием
Старый 29.08.2009, 18:44   #4
sa_t_an
Пользователь
 
Регистрация: 27.04.2008
Сообщений: 38
По умолчанию

http://php.spb.ru/php/flock.html
sa_t_an вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Не могу понять почему не идет сортировка файла, помогите пожалуйста Taisja Помощь студентам 2 15.06.2008 20:37
Прога для блокировки компа Legolas88 Общие вопросы Delphi 2 05.02.2008 08:04
Как написать код для блокировки Михаил Юрьевич Общие вопросы Delphi 6 19.01.2008 09:50
Помогите понять код MaGiCeYe Помощь студентам 1 02.04.2007 19:57