heilong пишет: Здесь вообще нет наглядного понимания, с чего бы циклу виснуть
ну почему же
наглядно понятно что не выполняется условие выхода из цикла
а не выполняется именно из-за кэширования filesize
и если ты потрудишься перейти по ссылке и почитать и там где надо(в примечании) еще раз перейти и почитать - ты все поймешь
(Добавление)
хотя пожалуй на вопрос "а что делать?" ты можешь сам и не догадаться ответить даже после прочтения ввиду полнейшей неопытности
перед каждым вызовом filesize вызывай clearstatcache для сброса кэша
и поясняю сразу для чего нужен кэш - для того чтобы диск не дергать на каждый вызов filesize(это дорого по времени изза механической природы чтения с диска), спорное решение, но оно так есть
(Добавление)
LIME пишет:всей правды никто не знает
и вот сейчас понял что зря это написал и ввел в заблуждение
имелось ввиду что по дороге к записи есть еще всякие кэши, например элементарно дисковый кэш
то есть при записи пых вызывает команду ос, которая может сама накапливать буфер для записи, и которая передает данные диску, который тоже имеет свой буфер
и все это зависит от ос и производителя диска и его модели
сколько там всех этих кэшей по дороге хз, никто не знает в общем случае))
то есть если даже тебе пых скажет что запись произошла - не факт что она произошла физически(пишушая головка еще не записала)
например всякие топ хранилища типа мускула итд не используют команды ос, а пишут сами на диск на низком уровне, чтобы минимизировать шанс потери транзакции
грузанул изрядно наверное))
к данному случаю это не сильно относится и наверное ввело в заблуждение))