Как в файловых системах указывается какие байты последнего кластера заняты? Предположим у нас размер кластера в 64 килобайт. И у нас есть некий файл. Теоретически этот файл может уложить в выделенные ему кластеры тютелька в тютельку. Но скорее всего (хотя нельзя исключать и обратного!) будет наоборот, часть последнего кластера пропадёт вхолостую.
И тут возникает проблема - как понять насколько "заполнен" последний кластер? В качестве частного случая он может быть заполнен полностью, та самая "тютелька". Он может быть заполнен наполовину (32 килобайта в нашем случае). Могут быть использованы только первые 13 байт кластера. И т.д.
Нет, конечно, можно просто тупо забить оставшееся пространство кластера нулями - но тогда при попытке чтения возникнет НЕоднозначность - это "полный" кластер у которого просто в конце нули (так надо, скажем это файл игровой карты и нули значат тип местности "болото")? А может быть нам надо учитывать первые 2 нуля как часть файла, а все остальные нули игнорировать? И т.д., думаю проблема ясна.
Можно попытаться использовать какую-то комбинацию байтов как символ "конца файла в секторе", но тогда это приведёт к табу на использовании этой комбинации байтов ближе к концу файла, что НЕ есть хорошо, ибо тогда контейнер (файловая система) начинает вводить ограничения на то, каким может быть содержимое того, что он должен хранить (файла). Такой трюк ещё можно безболезнено провернуть с текстовыми файлами, но с бинарниками, чьё содержимое гораздо более произвольно, такой подход уже выглядит как ущемление.

21 Авг 2019 в 06:25
191 +1
0
Ответы
1

В большинстве файловых систем для указания какие байты последнего кластера заняты используется специальный атрибут, который называется "размер файла". Этот атрибут указывает на общий размер файла в байтах. Используя этот атрибут, система может определить сколько байтов из последнего кластера занимает файл, и сколько байтов остаются свободными.

Таким образом, размер файла помогает системе определить точное количество байтов, которые занимает файл, включая последний кластер. При чтении файла система будет использовать эту информацию, чтобы правильно интерпретировать содержимое файла, включая различные варианты заполнения последнего кластера.

20 Апр в 13:18
Не можешь разобраться в этой теме?
Обратись за помощью к экспертам
Название заказа не должно быть пустым
Введите email
Бесплатные доработки
Гарантированные бесплатные доработки
Быстрое выполнение
Быстрое выполнение от 2 часов
Проверка работы
Проверка работы на плагиат
Интересные статьи из справочника
Поможем написать учебную работу
Название заказа не должно быть пустым
Введите email
Доверьте свою работу экспертам
Разместите заказ
Наша система отправит ваш заказ на оценку 84 706 авторам
Первые отклики появятся уже в течение 10 минут
Прямой эфир