Типы файлов
Обычные файлы, как правило, являются либо ASCII-файлами, либо двоичными файлами. ASCII-файлы содержат текстовые строки. В некоторых системах каждая ASCII-строка завершается символом возврата каретки.
В других (например, UNIX) используется символ перевода строки. Есть системы (например, Windows), где требуются оба символа. Строки не обязаны иметь одну и ту же длину.Главным преимуществом ASCII-файлов является то, что они могут отображаться на экране и выводиться на печать «как есть», без какого-либо преобразования, и редактироваться любым текстовым редактором. Более того, если несколько программ использует ASCII-файлы для ввода и вывода, несложно соединить вход одной программы с выходом другой, как это делается в конвейерах оболочки. (Обмен данными между процессами не становится проще, но интерпретация информации облегчается, если ее представление стандартизировано.)
Помимо ASCII-файлов существуют двоичные файлы. При выводе их на принтер получается невразумительный набор символов.
Но в действительности у них есть некая внутренняя структура, известная использующей их программе.Например, на рис. 5.2, а показан простой исполняемый двоичный файл, входящий в одну из версий UNIX. Хотя технически любой файл представляет собой всего лишь последовательность байтов, операционная система станет исполнять его только в том случае, если он имеет соответствующий формат. Файл состоит из пяти разделов: заголовка, текста, данных, данных переадресации и символьной таблицы. Заголовок начинается с так называемого магического числа, идентифицирующего файл как исполняемый (чтобы предотвратить случайный «запуск» файла другого формата). Следом за сигнатурой в заголовке располагаются поля с размерами различных частей файла, адресом точки входа файла и некоторые флаги. За заголовком следуют текст программы и данные. Они загружаются в оперативную память и настраиваются на работу по адресу загрузки при помощи битов переадресации. Символьная таблица используется для отладки.
Второй пример двоичного файла представляет собой архив в системе UNIX. Он состоит из набора библиотечных процедур (модулей), откомпилированных, но
не скомпонованных. Каждой процедуре предшествует заголовок, содержащий ее имя, дату создания, имя владельца, код защиты и размер. Как и в случае исполняемого файла, заголовки модулей хранят большое количество двоичных чисел. Если в таком виде подать их на принтер, получится полная тарабарщина.
а б
Рис. 5.2. Структура двоичного файла: а — исполняемый файл; б — архив
Все операционные системы должны распознавать, по крайней мере, один тип файлов — собственные исполняемые файлы, но некоторые операционные системы различают и другие типы файлов. Старая система ТОР5-20 (для компьютера ВЕС8у81еш 20) даже анализировала время создания каждого предоставляемого ей на исполнение файла. Затем она находила исходный файл и проверяла, не был ли он изменен, после того как был создан исполняемый файл.
Если оказывалось, что исполняемый файл уже устарел, операционная система автоматически перекомпилировала исходный файл. В переводе на язык иШХ — программа таке была встроена в оболочку. Расширения имен файлов были обязательными,чтобы операционная система могла определить, какая двоичная программа от какого исходного файла произошла.
Однако такая жесткая привязка типов файлов к содержимому может оказаться неудобной для пользователя, пытающегося сделать что-нибудь, не предусмотренное разработчиками операционной системы. Представьте, например, систему, в которой файлы программного вывода автоматически получают расширение dat (файлы данных). Пусть пользователь написал программу, форматирующую исходные тексты программ на языке С. Программа читает файл с расширением с, обрабатывает его и затем сохраняет результат в файле со стандартным расширением dat. Если пользователь затем попытается предложить этот файл компилятору С, операционная система не позволит его скомпилировать, так как у файла для данного действия неверное расширение. Попытка скопировать файл f ile. dat в f ile. с также будет отвергнута операционной системой, чтобы защитить пользователя от ошибки.
Хотя такая «дружественность» по отношению к пользователю («защита от дурака») может быть полезна для новичков, она ставит опытных пользователей в безвыходное положение, заставляя их тратить массу усилий на то, чтобы пере1 хитрить операционную систему.
5.1.4.
Еще по теме Типы файлов:
- смешанные типы
- Раздел II. Отдельные типы (виды) договоров
- Типы Характеров Человека
- 2.3. Типы и методы выборки
- ТИПЫ СОЦИАЛЬНЫХ ОТНОШЕНИЙ
- Типы энергетических блоков
- Типы дат
- 3.1.6. Смешанные типы
- Смешанные типы
- Смешанные типы
- 1 3.5.6. Смешанные типы
- Смешанные типы .
- 3.7.6. Смешанные типы
- Смешанные типы
- Смешанные типы
- 3.10.6. Смешанные типы
- 3.11.б. Смешанные типы