В зависимости от того что в файле можно рассматривать варианты работы через поток(stream).
Гуглится по этому слову собственно легко.
(xml || json || другой тип данных) streaming/stream parser/reader.
Это стандартное решение задачи с чтением файлов которые больше чем RAM.
Решение для нестандартных данных это построчное чтение или кусками через fread(т.е. тоже по сути единицы измерения это строки будут, иначе каша на выходе).
Если файл содержит супер странные данные, которые при этом неделимы и размазаны по строкам, то скорее всего увы. Либо писать свою вариацию потокового чтения и придумывать отправные точки для парсинга и навигации по файлу.