Структура файлов.
- Подробности
- Категория: Полезные советы
- Создано: 21.03.2014 11:56
Файловая система в конечном счете указывает на размещение файлов в определенных секторах или кластерах (группах секторов). Чтобы завершить обзор логической структуры дисков, скажем, что каждый файл тоже обладает определенной внутренней структурой. Каждый программист строит файлы, как умеет, — четких стандартов здесь почти нет. Тем не менее, большинство стараются придерживаться некоторой общепринятой структуры:
* в начале файла должен находиться заголовок (header). Сам заголовок тоже обладает внутренней структурой:
- заголовок начинается с двухбайтовой сигнатуры, или «магического числа». Сигнатура однозначно дает понять, что это за файл или какой программой он был создан. Например, EXE-файл всегда начинается с символов MZ, архив RAR содержит в своем коде сигнатуру RAR;
- другие поля заголовка могут содержать информацию о размере файла, указывать смещения следующих компонентов и т. д.;
* далее в файле могут идти специфические для данного формата заголовки, например в файлах изображений указываются название алгоритма сжатия, глубина цвета, размеры изображения в пикселах и т. п.;
* в некоторых файлах могут присутствовать вспомогательные компоненты: палитра, кодовая таблица, внедренные данные шрифтов, макросов и т. д. В отдельных форматах, наподобие документов Microsoft Office или Corel, такие данные могут превышать по объему все прочее;
* файл также содержит и собственно пользовательские данные документа. В некоторых сложных документах такие данные организованы в виде цепочек или порций (chunks). В этом случае в заголовках даются ссылки на начало и размер каждой порции;
* указатель конца файла (EOF, End of File) или контрольная сумма (CRC) подтверждают целостность файла. Это необязательный компонент.
Если части файла находятся в указанных кластерах, с точки зрения ФС все в порядке. Однако о целостности файла в полной мере может судить только программа, предназначенная для работы с этим типом файлов. Файл либо открывается, как надо, либо не открывается. В случае исполняемых файлов последнее слово остается за компонентами ОС — программа либо выполняется, либо не запускается или прерывается с ошибкой.