Управление файловой системой в MS-DOS

Автор: Пользователь скрыл имя, 19 Октября 2011 в 16:00, контрольная работа

Описание работы

ЧТО ТАКОЕ MS-DOS?
основные понятия,стандартные названия устройств;
Файловая система;
Работа с файлами;
Литература

Работа содержит 1 файл

Что такое MS.doc

— 110.00 Кб (Скачать)

     Описанная выше функция является комбинацией функций 3Dh и 3Ch (открытие и создание файла). Она удобна, но при ее использовании программа должна убедиться в том, что версия используемой операционной системы не ниже, чем 4.0. 
 

Удалить файл можно  при помощи функции 41h прерывания INT 21h: 
 

На  входе: AH = 41h
  DS:DX = Адрес строки в формате ASCIIZ, содержащей имя удаляемого файла.
На  выходе: AL = Код ошибки, если был установлен в 1 флаг переноса CF.

     С помощью  этой функции нельзя удалить файл, имеющий атрибут "Только читаемый".

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

     Стандартные библиотеки трансляторов Microsoft QC 2.5 и C 6.0 содержат функции для работы с файлами. Эти функции можно разделить на две группы - функции ввода/вывода низкого уровня и функции ввода/вывода потоком. Вторая группа функций использует буферизацию и будет рассмотрена в разделе, посвященном буферизованному вводу/выводу.

     Функции ввода/вывода низкого уровня отображаются на описанные выше функции прерывания INT 21h (и функции этого же прерывания, предназначенные для чтения/записи, позиционирования и т.д.).

Для создания файла  можно использовать функцию creat():

int creat(char *filename, int mode);

Эта функция и ее параметры описаны в файлах io.h, sys\types.h, sys\stat.h, errno.h.

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

     Второй  параметр позволяет задать атрибуты создаваемого файла. Он может иметь  следующие значения: 

S_IWRITE для создаваемого файла  разрешена операция записи;
S_IREAD для создаваемого файла  разрешена операция чтения;
S_IREAD | S_IWRITE для создаваемого файла  разрешены операции чтения и записи.

     В операционных системах MS-DOS и OS/2 невозможно создать  файл, в который можно было бы писать, но из которого было бы нельзя читать информацию. Поэтому задание второго параметра как S_IWRITE приведет к созданию такого файла, для которого разрешены как операция записи, так и операция чтения.

     После создания файла функция creat() открывает новый файл и возвращает файловый индекс (handle) или код ошибки.

     Функция open() предназначена как для открытия существующих файлов, так и для создания новых:

int open(char *filename, int oflag [, int pmode]);

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

     Параметр  oflag может являться результатом битовой операции или над следующими константами, определенными в файле fcntl.h:

O_APPEN при записи в файл информация будет добавляться в  конец файла;
O_BINARY файл открывается  для работы в двоичном режиме (игнорируются управляющие символы, такие как  конец строки);
O_CREAT создается новый файл и открывается для записи; эта константа игнорируется, если указанный в первом параметре файл уже существует;
O_EXCL используется вместе с O_CREAT; если указанный в первом параметре файл существует, функция возвратит признак ошибки;
O_RDONLY файл открывается  только для чтения, попытка записи в файл приведет к тому, что функция записи вернет признак ошибки;
O_RDWR файл открывается  как для чтения, так и для  записи;
O_TEXT файл открывается  в текстовом режиме;
O_TRUNC существующий файл открывается и обрезается до нулевой длины (если для этого файла разрешена операция записи);
O_WRONLY файл открывается  только для записи (в операционных системах MS-DOS и OS/2 для файла, открытого  с признаком O_WRONLY разрешено выполнение операции чтения).

     Для того, чтобы закрыть файл, открытый функциями creat() или open(), нужно использовать функцию close():

int close(int handle);

     В качестве параметра функции передается файловый индекс, полученный при открытии или  создании файла. Функция возвращает 0 при успешном закрытии файла, или -1 при ошибке.

     Код ошибки для этой и других функций  стандартных библиотек трансляторов Microsoft QC 2.5 и C 6.0 записывается в глобальную переменную errno. 
 
 
 
 
 
 
 
 

     СПИСОК  ИСПОЛЬЗОВАННОЙ ЛИТЕРАТУРЫ

  1. Олифер В. Г., Олифер Н. А. Сетевые операционные системы. – СПб.: Питер, 2002.
  2. Герхард Франкен, Сергей Молявко "MS-DOS 6.2 ... для Пользователя", Киев, BHV, 1994,  Москва, БИНОМ, 1994.
  3. "DOS 3.3. Техническое руководство". Методические материалы, 1994

Информация о работе Управление файловой системой в MS-DOS