Возможны оба варианта.
Когда вы делаете read
для обычного файла, он последовательно читает файл, каждый раз передвигая указатель файла на нужную величину.
НоВы также можете использовать seek
для перемещения к произвольной точке в файле.
Не все файлы поддерживают произвольный / прямой доступ.Каналы, например, обычно имеют только последовательный доступ (вы не можете перематывать или перематывать вперед).
Так что почти все возможно, но некоторые типы файлов имеют ограничения.
(Доступ к файлам с прямымВвод / вывод (O_DIRECT
флаг) - это совсем другое понятие.)