Реферат Курсовая Конспект
Управление вычислительным процессом с помощью вызова внешних программ - раздел Информатика, Управление вычислительным процессом с помощью вызова внешних программ В Pascal Можно Организовать Вызов Из Программы Любой Другой Программы, Котору...
|
В Pascal можно организовать вызов из программы любой другой программы, которую назовем программой–потомком. Но, чтобы программа–потомок успешно загружалась в память и начала выполняться, требуется выделить ей необходимый объем памяти. Так как программа, которая выполняется в данный момент, по умолчанию захватывает всю свободную динамическую память (кучу) системы, то для загрузки программы–потомка просто нет места. Минимальный размер выделяемой программе памяти указывается в директиве компилятора $M.
Например, директива {$M 16384, 0, 655360} устанавливается для программ по умолчанию. Здесь максимальный размер кучи равен всей доступной памяти и вызов программы–потомка невозможен. Но, с помощью директивы {$M 1024, 0, 0} динамическая память совсем не выделена. Теперь можно вызывать программу–потомок.
Вызов внешней программы производится с помощью процедуры Exec (Path, CmdLine: String).
Здесь Path – это путь к исполняемому файлу и его имя, а CmdLine – командная строка, которая передается вызываемой программе.
При запуске программа, написанная на Pascal, переопределяет некоторые прерывания MS-DOS для собственных целей. Поэтому перед вызовом программы–потомка нужно восстановить исходные адреса обработчиков прерываний (MS-DOS обработчиков), а после завершения работы вызываемой программы установить адреса обработчиков Pascal. Эти действия выполняет процедура без параметров SwapVectors.
Пример 2. Описание вызова внешней программы.
{$M 1024,0,0}
Uses Dos;
Var PrName,CmdLine:string;
Begin
Write('Введите путь и имя исполняемого файла: '); Readln(PrName);
Write('Введите командную строку: '); Readln(CmdLine);
SwapVectors; {переустановим вектора прерываний}
Exec(PrName,CmdLine);
SwapVectors; {восстановим вектора}
IF DosError<>0 THEN writeln('Ошибка DOS! Ее код - ',DosError)
ELSE writeln('Выполнение прошло успешно!'); Readln
End.
Отметим, что при вызове с помощью Exec внутренней функции MS-DOS следует вызвать Command.com.
Используя механизм вывода внешних программ, можно создавать сложные программные комплексы, в которых программа–диспетчер, занимая небольшой объем памяти, производит вызов необходимых (в том числе и системных) программ.
– Конец работы –
Эта тема принадлежит разделу:
Обеспечение интерфейса с командами операционной системы... Типы прерываний и их обслуживание... Организация работы с каталогами и файлами...
Если Вам нужно дополнительный материал на эту тему, или Вы не нашли то, что искали, рекомендуем воспользоваться поиском по нашей базе работ: Управление вычислительным процессом с помощью вызова внешних программ
Если этот материал оказался полезным ля Вас, Вы можете сохранить его на свою страничку в социальных сетях:
Твитнуть |
Новости и инфо для студентов