24 декабря 2023 г. Архивач восстановлен после серьёзной аварии. К сожалению, значительная часть сохранённых изображений и видео была потеряна.
Подробности случившегося. Мы призываем всех неравнодушных
помочь нам с восстановлением утраченного контента!
В програмаче никого нет и никто нихуя не знает, поэтому спрошу тут.
Итак. Пишем простой скрипт:
$f = fopen('file.txt', 'cb');
flock($f, LOCK_EX|LOCK_NB);
ftruncate($f, 0);
fwrite($f, 'lalala');
sleep(5000);
Открываем, лочим, обрезаем размер до нуля, пишем в file.txt строку "lalala", отправляем скрипт повисеть 5000 секунд.
Пишем второй:
$t = file_get_contents('file.txt');
var_dump($t);
Сопсно. Читаем содержимое файла и выводим его на экран.
Итак. Запускаем первый, он делает запись в файл и пока он висит - запускаем второй. Что происходит? var_dump() выводит на экран строку - "lalala" и правильно делает. А правильно он делает потом, что запускаем мы все это дело на линуксе. Проделываем ту же операцию на винде - var_dump() выводит пустую строку, несмотря на то, что "lalala" точно записалось.
Вопрос: ПОЧЕМУ БЛЯДЬ ТАК? И как фиксить? Долбоебы с советами - сделать по другому - идут нахуй.
буду бампать пока не получу ответ