logo
cpp4_2008

Вариант 11 Файловая система

Разработать приложение, позволяющее организовать работу с файлами некоторой файловой системы. Информация о некотором файле (обычном файле, каталоге или специальном файле) хранится в его описателе.

Описатель обычного файла содержит следующую информацию: дата и время создания файла, последней модификации; права доступа к файлу (можно/нельзя читать из файла, писать в файл, исполнять); размер файла в байтах и виртуальный адрес размещения файла на диске.

Описатель каталога содержит следующую информацию: права доступа к каталогу (можно/нельзя читать из каталога, писать в каталог); размер каталога в байтах и виртуальный адрес размещения каталога на диске; указатель на описание структуры каталога.

Описатель специального файла содержит следующую информацию: права доступа к файлу (можно/нельзя читать из файла, писать в файл); тип файла (байт или блок-ориентированный); размер файла в байтах и виртуальный адрес драйвера устройства.

В качестве виртуального адреса использовать адрес динамически выделенной памяти и отображать его в виде шестнадцатеричного числа.

Каждый файл имеет уникальную характеристику – идентификатор файла (последовательность латинских букв не более 24 символов). Информация обо всех файлах сведена в таблицу, каждый элемент которой содержит идентификатор файла и указатель на его описатель. Элементы таблицы упорядочены в алфавитном порядке.

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

Обеспечить выполнение следующих операций: