Вопрос.
Некий ресурс пишит сейчас данные в тексовый файл и блочит его на запись flock($fp, LOCK_EX); , после того как он запишет данные и освободит его flock($fp, LOCK_UN); fclose($fp); тот предыдущй ресурс, который стучался на запись в этот файл, возобновит запись?
Или я должен за этим следить?
Как следить? Код номер 2 мое предположение.
#Запись данных в файл
function WriteFile($file, $string, $clear = false){
$flag = false;
if($fp = fopen($file, 'a')){
flock($fp, LOCK_EX);
if($clear){
ftruncate($fp, 0);
}
fwrite($fp, $string);
fflush($fp);
flock($fp, LOCK_UN);
fclose($fp);
$flag = true;
}else{
echo 'Ошибка. Не удалось открыть файл '.$file;
}
return $flag;
}
#Запись данных в файл
function WriteFile($file, $string, $clear = false){
$flag = false;
$i=0;
while(!($fp = fopen($file, 'a')) || $i<10 ){
$i++
usleep(1000);
}
if($fp){
flock($fp, LOCK_EX);
if($clear){
ftruncate($fp, 0);
}
fwrite($fp, $string);
fflush($fp);
flock($fp, LOCK_UN);
fclose($fp);
$flag = true;
}else{
echo 'Ошибка. Не удалось открыть файл '.$file;
}
return $flag;
}