Название может вводить в заблуждение, однако я чувствовал, что не могу написать точное. Мои извинения.
Я работаю над «частичным» драйвером FAT32 для AVR, написанным на C. Я пытаюсь написать функцию, которая в основном считывала бы 4 действительных записи (пропуская LFN и пустые записи) из каталога в буфер. Функция отслеживает текущий кластер и текущее смещение (с шагом 32, так как записи составляют 32 байта) внутри кластера.
Теперь моя проблема в том, что мне нужно, чтобы функция могла читать четыре записи вперед (например, следующие 4 записи от текущего смещения) или четыре записи назад (до текущего смещения). Моя проблема сейчас заключается в том, что при чтении в обратном направлении у вас могут быть некоторые записи в текущем кластере и некоторые записи в предыдущем. Должен ли я отслеживать все номера кластеров, уже прочитанные в массиве, для обхода в обратном направлении? Я просто ищу некоторые указатели на то, что было бы элегантным решением.
Заранее спасибо!