
- •1. Подготовка к выполнению лабораторных работ Цели и задачи лабораторного практикума
- •Программа и порядок выполнения лабораторных работ
- •Требования к оформлению отчёта о выполнении лабораторной работы
- •Общие теоретические сведения Файловый сервис операционной системы ms-dos
- •Системные регистры процессора
- •2. Лабораторная работа №1. Реализация низкоуровневых функций работы с файлами
- •Общие теоретические сведения
- •Контрольные вопросы к лабораторной работе
- •3. Лабораторная работа №2. Применение дескрипторно-ориентированных файловых функций
- •Общие теоретические сведения
- •Контрольные вопросы к лабораторной работе
- •4. Лабораторная работа №3. Реализация низкоуровневых функций работы с каталогами
- •Общие теоретические сведения
- •Контрольные вопросы к лабораторной работе
- •5. Лабораторная работа №4. Реализация низкоуровневых функций работы с памятью
- •Общие теоретические сведения
- •Контрольные вопросы к лабораторной работе
- •6. Лабораторная работа №5. Реализация низкоуровневых функций работы с системной датой и временем
- •Общие теоретические сведения
- •Контрольные вопросы к лабораторной работе
- •7. Лабораторная работа №6. Прерывания в ос ms-dos. Обработчики аппаратных прерываний. Механизм обработки прерываний
- •Общие теоретические сведения
- •Контрольные вопросы к лабораторной работе
- •Приложение №1. Коды ошибок для операций работы с файлами
Контрольные вопросы к лабораторной работе
Каковы основные правила работы с файлами в операционной системе MS-DOS?
Какие возможности предоставляет операционная система MS-DOS для работы с файлами?
Какие переменные языка Т.Паскаль служат для работы с регистрами и прерываниями?
Для чего необходимы и каковы основные возможности предоставляемые дескриптором?
Каковы правила реализации модуля на языке Т.Паскаль?
3. Лабораторная работа №2. Применение дескрипторно-ориентированных файловых функций
Цель работы: изучение методов работы с утилитами командной строки. Анализ возможностей утилиты MS-DOS COPY.
Задание: разработать программу- утилиту копирования файлов. Утилита должна работать аналогично команде COPY MS-DOS и позволять производить копирование одного или нескольких файлов в другой каталог.
Общие теоретические сведения
Команда COPY ОС MS-DOS имеет большое количество параметров и позволяет производить копирование файлов в различных режимах.
В качестве параметров командной строки могут быть использованы:
Источник
Результат.
Источник - Имя копируемого файла (файлов).
Результат - Папка для размещения и/или имя создаваемого файла.
Полный список параметров команды COPY:
C:\>copy /?
Копирование одного или нескольких файлов в другое место.
COPY [/D] [/V] [/N] [/Y | /-Y] [/Z] [/A | /B] источник [/A | /B]
[+ источник [/A | /B] [+ ...]] [результат [/A | /B]]
Источник Имена одного или нескольких копируемых файлов.
/A Файл является текстовым файлом ASCII.
/B Файл является двоичным файлом.
/D Указывает на возможность создания зашифрованного файла
Результат Каталог и/или имя для конечных файлов.
/V Проверка правильности копирования файлов.
/N Использование, если возможно, коротких имен при копировании файлов, имена которых не удовлетворяют стандарту 8.3.
/Y Подавление запроса подтверждения на перезапись существующего конечного файла.
/-Y Обязательный запрос подтверждения на перезапись существующего конечного файла.
/Z Копирование сетевых файлов с возобновлением.
Ключ /Y можно установить через переменную среды COPYCMD. Ключ /-Y командной строки переопределяет такую установку.
По умолчанию требуется подтверждение, если только команда COPY не выполняется в пакетном файле. Чтобы объединить файлы, укажите один конечный и несколько исходных файлов, используя подстановочные знаки или формат "файл1+файл2+файл3+...".
Как видно из приведённого списка параметров команда COPY позволяет произвести копирование, как отдельных файлов, так и группы файлов удовлетворяющих маске. Также команда позволяет осуществлять копирование файлов с проверкой правильности копирования.
В качестве примера реализации внешних команд ОС MS-DOS студентам предлагается написать программу, включающую в себя некоторые из возможностей стандартной программы копирования.
Варианты вызова:
имя_программы *.txt c:\ (копирование всех файлов удовлетворяющих маске из одного каталога в другой с сохранением имён файлов);
имя_программы a.txt+b.txt+c.txt (второй и последующие файлы копируются в первый файл, т.е. в первый файл дописывается содержимое второго файла, третьего файла и т.д.);
имя_программы a.txt+b.txt c:\c.txt (создаётся файл, указанный во втором параметре и в него заносится содержимое первого файла + содержимое второго файла и т.д.);
имя_программы a.txt c:\b.txt (копирование с переименованием файла указанного в первом параметре в каталог указанный во втором);
имя_программы a.txt c:\ (аналогично варианту №1 с тем исключением, что в этом случае копируется только один файл);
имя_программы a.txt b.txt (создаётся копия первого файла с именем указанным как второй параметр). Поскольку каталог не указан, копирование происходит в текущем каталоге.
Во всех приведённых случаях вызов осуществляется через командную строку и «имя_программы» является именем запускаемого файла программы написанной в рамках лабораторной работы и не использующей стандартную команду COPY для копирования файлов. Для случая, когда в качестве имени файла указан знак ‘*’ (копирование по маске) необходимо использовать процедуры языка Т.Паскаль FindFirst (поиск первого файла удовлетворяющего маске) и FindNext (поиск следующих файлов удовлетворяющих маске).
Копирование необходимо выполнить путём последовательной записи всех данных из исходного файла в результирующий файл посредством процедур BlockRead и BlockWrite.