Блкируется ли файл если читать его не файловыми функциями

sh

Новичок
Блкируется ли файл если читать его не файловыми функциями

Некотрые настройки скрипт берет из пхп файла с кучкой объявленных переменных, в админке для изменения настроек изменяется этот файл. Во время записи естественно файл нужно блокировать.
PHP:
$fp = fopen("options.php", "a+",1) ;
flock($£p, 2);
fwrite($fp, $outputstring);
flock($fp, 3);
fclose($fp);
это при записи, а что делать при чтении, вот так если
PHP:
$fp = fopen("options.php", "r");
flock($fp, 1);
include("options.php");
flock($fp, 3);
fclose($£p);
блокировка будет норм работать, и если нет, что делать?
 

sh

Новичок
И что заставляет тебя сомневаться в моих словах?
 

Leshas0

Новичок
Автор оригинала: sh
И что заставляет тебя сомневаться в моих словах?
чтение файла выполняется ф-ей fread () или fgets ()
а include не читает файл именно в смысле "чтение файла".
вроде так
 

MiksIr

miksir@home:~$
flock - мягкая блокировка, т.е. ядро тут не вмешивается, а доступ разруливает само приложение. Так как ты написал... ну.. наверно можно делать ;) Только используй все же константы для указания операции, а не инты.
 

Фанат

oncle terrible
Команда форума
мне вот ужасно интересно, зачем лочить файл на чтение.
аи уж тем более - файл с пхп кодом
 

MiksIr

miksir@home:~$
Ну, во-первых, когда файл залочен на чтение, его нельзя залочить на запись. А во-вторых, когда дается блокирующий flock на чтение, если этот файл был уже кем-то залочен на запись, flock ждет освобождения этого лока.
 

Фанат

oncle terrible
Команда форума
с какой стати ты собрался лочить на запись файл с пхп кодом?
 

sh

Новичок
Не мелочитесь) тот код скопирнул из первого попавшегося примера, прилипив инклюд.
Мне интресна сама идея: можно ли блокировать пхп-файл на чтение командой include пхп-ми блокировками(flock).

Или по другому: если файл заблокирован для чтения (с помощью flock), приложение читающее файл стопорится на flock в ожидании разблокировки или на самой команде чтения (fread какой-н), стопорится ли на include тогда?

Если я правильно понял MiksIr-а то приложение стопротися на flock в ожидании разблокировки, значит в принципе способ рабочий?
 

sh

Новичок
Что с ним не так?)
Хранить настройки в бд? в файле спец формата, а чем такой файл тогда лучше?
 

Фанат

oncle terrible
Команда форума
тем, что не надо пытаться писать пхп-код скриптом.
меньше проблем будет.
 

sh

Новичок
Ничего кроме как изменения строчек вида
$var=value
делать не собираюсь, какие проблемы меня ожидают?
 

Фанат

oncle terrible
Команда форума
что за люди.
"ничего кроме select * from baza where id=$id делать не соибраюсь. какие проблемы меня ожидают?"
"ничего кроме include $modul; делать не соибраюсь. какие проблемы меня ожидают?"
"я тут самый умный, а вы меня просто пугаете"
 

Mr_Max

Первый класс. Зимние каникулы ^_^
Команда форума
...И все люди имеют глаза и уши чтобы видеть и слышать и только мудрый внимает всему... (Лао-Цзы, МУДРОСТЬ)
 

sh

Новичок
Автор оригинала: *****
что за люди.
"ничего кроме select * from baza where id=$id делать не соибраюсь. какие проблемы меня ожидают?"
"ничего кроме include $modul; делать не соибраюсь. какие проблемы меня ожидают?"
"я тут самый умный, а вы меня просто пугаете"
Я понимаю что вы тут самый умный, но все же, если отбросить мелкие проблемы контроля за входными данными, и исходить из того, что ничего лишнего в файл писаться "по недосмотру" не будет, какие проблемы меня ожидают?

"не файловыми функциями" это неудачный термин для include
 

das6745

Новичок
Mr_Max
спасибо, перечитав еще раз я с трудом =) понял что хотел донести автор. но думаю что файловые функции
это неудачный термин для include
, действительно очень неудачный. я сразу подумал о низкоуровневых ф-циях чтения/записи, без которых, имхо, невозможно никакими др. способами работать с файлами. соответственно, и название темы с этой точки зрения немного бредовое.
 

sh

Новичок
да название не очень:)
еще бы кто точно ответил про блокировку, а не уходил в оффтоп
 
Сверху