Крот
Новичок
Проясните пожалуйста с flock
Провел эксперимент...
1. Создал файл a.php вот такого содержания
Запускаю a.php и пока он спит запискаю b.php
По-идее, b.php не может записать что-то в файл, т.к. он заблокирован (LOCK_EX); он ждет свой очереди, т.е. у b.php ничего не получится до тех пор, пока a.php не поспит 20 секунд и не отключит лок. На деле получается совсем другое...
Проясните пожалуйста ситуацию с локами, а то запутался в том, как они работают.
Спасибо.
Провел эксперимент...
1. Создал файл a.php вот такого содержания
PHP:
<?php
$file = "abc.txt";
$fp = fopen($file, "w");
flock($fp, LOCK_EX);
sleep(20);
flock($fp, LOCK_UN);
$file = "abc.txt";
$fp = fopen($file, "w");
fwrite($fp, "test");
fclose($fp);
echo file_get_contents($file);
?>
Запускаю a.php и пока он спит запискаю b.php
По-идее, b.php не может записать что-то в файл, т.к. он заблокирован (LOCK_EX); он ждет свой очереди, т.е. у b.php ничего не получится до тех пор, пока a.php не поспит 20 секунд и не отключит лок. На деле получается совсем другое...
Проясните пожалуйста ситуацию с локами, а то запутался в том, как они работают.
Спасибо.