Методическое указание
к лабораторной работе
«Работа с ОС UNIX. Работа с файловой системой»
Орск 2002
Файловая система UNIX
В операционной системе UNIX файл является хранилищем двоичных и символьных данных, хранимых как поток байтов В UNIX символьные данные кодируются с помощью кода ASCII.
Файлы содержат разные типы информации Например, файл может содержать исходный код программы на С или C++, он может быть текстовым документом с письмом или исполняемым модулем программы В UNIX существует несколько "родных" форматов файлов, которые можно просматривать или копировать, используя команды системы Однако некоторые файлы нельзя обработать внутренними командами UNIX. Например, файлы базы данных для СУБД независимых разработчиков, таких как Oracle, требуют для обработки специальных программ.
Файл может располагаться на разных носителях. Файлы бывают постоянными, т е записанными на диске или временными — в памяти; данные из файла могут выводиться на терминал, или файл может принимать данные с терминала. Если файл постоянный, то его можно просмотреть, а если файл временный, то вы можете даже не знать о его существовании
Функции, которые обычно выполняются по отношению к файлу, таковы.
• Открытие файла для обработки
• Чтение данных из файла для обработки
• Запись данных в файл после обработки
• Закрытие файла после того, как вся необходимая обработка выполнена
Теперь, когда у вас есть представление о том, что такое файл и что он содержит, пришло время узнать побольше о тех разных типах файлов, с которыми вы можете столкнуться.
Типы файлов
Регулярные файлы
Регулярные файлы — это те файлы, с которыми вы, вероятно, знакомы лучше всего. Сущность их неизменна. Они постоянны по природе и содержат такие данные, как код программы, почту, или письмо, которое вы пишете другу. Данные файлы почти всегда содержат текстовую информацию. В таких файлах данные организованы в записи.
Как UNIX узнает о записях? Существует специальный символ, называющийся символом новой строки (newline character), который используется UNIX для поиска места, где одна запись заканчивается, а другая начинается Многие команды UNIX поддерживают обработку текстов. Однако, имейте в виду, что текстовые файлы — не единственный тип регулярных файлов Некоторые файлы представляют собой поток байтов без каких-либо символов новой строки Хотя UNIX изначально была предназначена для обработки текстовых документов, она не сможет обработать такие файлы,
Ниже следуют примеры нескольких регулярных файлов:
• prog.c содержит исходный код программы на С
• prog.exe содержит исполняемый модуль программы.
• invite.doc содержит приглашение.
Вот пример списка атрибутов, имеющихся у файла. Файл называется testfile, и атрибуты выводятся с использованием следующей команды:
ls -al testfile
Результатом будет
rwxr-xr-r 2 guhas staff 1012 Oct 30 18:39 testfile
UNIX отслеживает атрибуты, используя структуру данных под названием i-node (индексный дескриптор). Каждый индексный дескриптор в системе идентифицируется числом, которое называется номером индексного дескриптора. Каждый файл в системе имеет ассоциированный с ним индексный дескриптор, который содержит следующую информацию:
• владелец файла;
• права доступа,
• дата и время создания, дата и время модификации, и т д.,
• тип файла.
Для временной информации в индексном дескрипторе выделено несколько полей:
• время последнего доступа;
• время последней модификации;
• время последней модификации индексного дескриптора.
Время последнего доступа меняется при выполнении любой операции с файлом. Дата последней модификации изменяется при модификации файла. Время последней модификации индексного дескриптора меняется тогда, когда меняется информация, хранящаяся в индексном дескрипторе.