Проверка идет ли запись в файл

Печать RSS
152

М
Автор
Малиновые штаны
0
Как проверить использует ли в данный момент какой-либо процесс файл для записи?
В

fakmoymozg
0
lsof | grep имяфайла
А

Оранжевые штаны
0
попробуй так
$fp = fopen('/tmp/lock.txt','a');
if (flock($fp, LOCK_EX)) {
 echo 'Файл не используется.';
flock($fp, LOCK_UN);
} else {
    echo 'Файл занят.!';
}
	fclose($fp);
Изменил: Александр (23.11.2009 / 21:20)
М
Автор
Малиновые штаны
0
#2, это для командной строки?
А

Оранжевые штаны
0
4, да, под nix*
М
Автор
Малиновые штаны
0
#3, проблема в том, что процесс не блокирует файл и flock($fp, LOCK_EX) всегда возвращает true
А

Оранжевые штаны
0
6, какая ось?
М
Автор
Малиновые штаны
0
windows7
Изменил: Михаил (23.11.2009 / 21:39)
А

Оранжевые штаны
0
Страшный способ v2.0
<?php	if(rename('tmp_file.txt', 'my_file.txt'))
	{ 
	echo 'Не используется!!';
	rename('my_file.txt','tmp_file.txt');
	 }else{
	 echo 'Файл занят!!!';
	 }
Наверняка сработает
М
Автор
Малиновые штаны
0
Не сработал. Я ж говорю файл не блокируется, любой другой процесс может делать с ним что угодно
Стикеры / Теги / Правила / Топ тем / Топ постов / Поиск