[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Запись в файл
Archusha
Добрый день, подскажите пожалуйста, а как работает механизм записи в файл если два пользователя одновременно пытаются открыть файл?

По идеи, файл будет блокирова первым пользователем на запись, а что будет с вторым пользователем? скрипт несработает?

и если да, то как этого избежать?



Спустя 2 минуты, 43 секунды (25.02.2011 - 11:02) linker написал(а):
Засыпать, пока файл не разблокируется.

Спустя 7 минут, 56 секунд (25.02.2011 - 11:10) Archusha написал(а):
тоесть банально на цикл проверки занят, не занят, со сном в N секунд.
Я правильно логику понял?

А сущесвуют другие варианты?

Спустя 7 часов, 24 минуты, 12 секунд (25.02.2011 - 18:34) Chel_Hacker777 написал(а):
Archusha
Необходимо блокировать файл. Вот так например можно произвести нужные манипуляции с файлом:

<?php
$fp = fopen ( "path_to_file" , "a" ); //открытие
flock ( $fp , LOCK_EX ); //БЛОКИРОВКА ФАЙЛА
fputs ( $fp , "$data \r\n " ); //работа с файлом
fflush ( $fp ); //ОЧИЩЕНИЕ ФАЙЛОВОГО БУФЕРА И ЗАПИСЬ В ФАЙЛ
flock ( $fp , LOCK_UN ); //СНЯТИЕ БЛОКИРОВКИ
fclose ( $fp ); //закрытие
?>

Спустя 8 минут, 32 секунды (25.02.2011 - 18:42) T1grOK написал(а):
Цитата (Archusha @ 25.02.2011 - 08:10)
тоесть банально на цикл проверки занят, не занят, со сном в N секунд.
Я правильно логику понял?

Да.

Спустя 19 часов, 45 секунд (26.02.2011 - 13:43) Dron19 написал(а):
только тут уже у меня вопрос возник, а как посчитать время записи в файл, что бы слипить скрипт на N сек?

Спустя 2 минуты, 43 секунды (26.02.2011 - 13:46) Dron19 написал(а):
вообще по идее, если файл кто-то использует, то у другого пользователя будет тормоз, до тех пор пока предыдущий пользователь не откроет его вновь, так что тут ничего не нужно слипить
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.