С точки зрения системного апи - да, получение дескриптора файла на чтение каждый раз новое.
Вот только это не имеет ничего общего с обращением к физическому диску - это на усмотрение ОС. Дисковый кэш уже давным-давно реализован. При чтении блока, этот блок сохраняется в RAM, последующие запросы на чтение этого блока обрабатываются уже напрямую из RAM. Запись в файл, к слову, тоже осуществляется в памяти. На диск изменения (ака грязные страницы) сбрасываются через вызов fsync вручную или по таймеру или по достижении некоторого порогового числа этих грязных страниц.
PHP не экспортирует флаги вроде O_DIRECT. Поэтому, если только файл в принципе помещается в память и достаточно часто используется - с диска он читается только один раз.
|