@gat3way и аз имам няколко въпроса по темата - понеже файловете не съществуват а се имитират при опит за четене - какво ще стане ако имаме напр. такъв файл с размер от 1 байт и:
1. Отваряме файла, четем един байт, спим 1 сек., четем (още) един байт:
- нормално ще ни симулира текущото състояние отново и ние ще го прочетем (въпреки че е след края на файла);
- грешка - четене след края на файла (тъй като размера на файла е 1 байт) ..нищо че файла е измислен и може да ни го даде да го прочетем като следващ байт;
т.е. въпроса е дали е задължително да се прави seek(0) преди всяко четене
2. Кешира ли се от ОС напр. същата ситуация от по-горе като почваме да четем всеки път от началото за по-сигурно обаче ОС гледа в кеша гледа дата (и понеже никой друг не достъпвал файла и дата и час същите) и решава че това в кеша му е същото и не чете новото състояние..
т.е. въпроса е дали трябва да се затваря и отваря файла всеки път за да изчисти кеша
За кеша нямам спомени ObjectPascal дали можеше да му се оказва по някакъв начин да не го ползва подобно на O_DIRECT в С/С++
та затова предполагам колегата всеки път отваря-затваря файла което много го бави - въпросът е може ли да спести seek(0) всеки път, а отварянето и затварянето?
П.П. или дай инфо ако знаеш как може да си направи собствен "hook в VFS слоя" да му вика callback при нужда. Аз му дадох един линк - ама или при него не сработи ли не успя да го подкара (не разбрах и аз какво стана) ...дали не е щото беше С/С++ а не ObjectPascal - не знам