Модераторы: skyboy, MoLeX, Aliance, ksnk
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Работа с файлами, Чтение/запись 
:(
    Опции темы
Sardar
  Дата 1.2.2003, 00:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бегун
****


Профиль
Группа: Модератор
Сообщений: 6986
Регистрация: 19.4.2002
Где: Нидерланды, Groni ngen

Репутация: 4
Всего: 317



Есть скрипт который пишет несколько строк в файл. Этот скрипт запрашивается несколькими пользователями одновременно. Следит ли php за обращениями к файлу или кто успел тот и записал. То есть что бы не получить что-то подобное: Привет отПривет меняот соседа

Есть скрипт который читает из файла и скрипт который что-то туда пишет. Вызываются одновременно. Есть ли гарантия, что пока первый скрипт не закроет файл никто не сможет туда что-нибудь записать. То есть хочу прочесть: Привет всем, а читаю: Чужая лажа...

Я думаю с этим сталкивался каждый.


--------------------
 Опыт - сын ошибок трудных  © А. С. Пушкин
 Процесс написания своего велосипеда повышает профессиональный уровень программиста. © Opik
 Оценить мои качества можно тут.
PM   Вверх
Cepera
Дата 1.2.2003, 01:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


PHPexp
****


Профиль
Группа: Экс. модератор
Сообщений: 2146
Регистрация: 25.3.2002
Где: Russia, Samara

Репутация: 1
Всего: 7



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


--------------------
I know it is heavy for reading, but I know you will read it anyway...
PM MAIL WWW ICQ   Вверх
Sardar
  Дата 14.2.2003, 21:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бегун
****


Профиль
Группа: Модератор
Сообщений: 6986
Регистрация: 19.4.2002
Где: Нидерланды, Groni ngen

Репутация: 4
Всего: 317



Ничего не работает bored.gif bored.gif bored.gif . Попробовал все, даже такую феню:
Код
for($i=0; file_exists("lock_file"); $i++, clearstatecashe()) {
usleep(500000);
if($i>9) mydie("Ресурс заблокирован.");
}

Но хочется проще...

Прежде чем сюда писать, пересмотрел всю инфу которую смог найти:
оказывается flock не работает на "устаревших" файловыx системах. А уменя Win98 mad.gif

Что делать, если хочется что бы было быстро, надежно и не глючило? butbut.gif


--------------------
 Опыт - сын ошибок трудных  © А. С. Пушкин
 Процесс написания своего велосипеда повышает профессиональный уровень программиста. © Opik
 Оценить мои качества можно тут.
PM   Вверх
dvl
Дата 16.2.2003, 05:04 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











использовать довольно распространенный хинт - lock-file

скрипт перед записью в файл смотрит есть ли lock-file, если нет - создает его, и пишет в целевой файл, после чего удаляет lock-file.
Если lock-file есть - он тусуется некорое время(1 сек должно хватить) и снова смотрит ...

для читателя файла в этом наверно нет необходимости

Конечно надо добавить проверки что lock-file не забыли удалить и т.д.
если весь этот процесс засунуть в одну ф-ию wrapper - чтобы ее пользовали все ф-ии писатели , может получиться очень удобно
  Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "PHP"
Aliance
IZ@TOP
skyboy
SamDark
MoLeX

Новичкам:

  • PHP редакторы собираются и обсуждаются здесь
  • Электронные книги по PHP, документацию можно найти здесь
  • Интерпретатор PHP, полную документацию можно скачать на PHP.NET

Важно:

  • Не брезгуйте пользоваться тегами [code=php]КОД[/code] для повышения читабельности текста/кода.
  • Перед созданием новой темы воспользуйтесь поиском и загляните в FAQ
  • Действия модераторов можно обсудить здесь

Внимание:

  • Темы "ищу скрипт", "подскажите скрипт" и т.п. будут переноситься в форум "Web-технологии"
  • Темы с именами: "Срочно", "помогите", "не знаю как делать" будут УДАЛЯТЬСЯ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0433 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.