пользователей: 30398
предметов: 12406
вопросов: 234839
Конспект-online
РЕГИСТРАЦИЯ ЭКСКУРСИЯ

pogromirovanie:
» sooqa
Уася:
» History motherfuckers

Организация субпроцессов. Правила их организации. Пример программы.

Вызов независимых программ

(организация субпроцессов)

Если основная программа организует из своего тела вызовы некоторых .ехе файлов, то основная программа наз. процессом, а вызываемый .ехе файл – субпроцессом.

Память под субпроцесс выделяется в куче.

  1. Необходимо выделить память под стек, где будут храниться адреса возвратов процедур и функций , локальные переменные и др.
    {$M 16384, 0,0}
  2. Подключить модуль DOS/
    Прoцедура этого модуля EXEC( <имя файла> ,параметры); организует запуск указанных файлов, <имя файла> ,параметры-строковые переменные или константы.
    • Запуск автономного компилятора из программы EXEC(’TPC.EXE’,’/L PROG.PAS’);, который откомпилирует программу PROG.PAS
    • Вызов любого .ЕХЕ файла ЕХЕС(‘PROG.EXE’,’ ’);
  3. Если субпроцесс закончился неудачно, это не повлияет на работу основной программы, поэтому осуществляется контроль, прошел ли вызов субпроцесса, с помощью переменной DosError.
    Если DosError=0 - вызов успешный, иначе коды ошибок в DosError.
  4. Субпроцесс работает в своем DOS окружении. Перед вызовом субпроцесса необходимо запомнить исходное DOS окружение, а после вызова – восстановить исходное.
    SwapVectors;
    EXEC(……..);
    SwapVectors;

Пример: Написать программу , которая корректирует файл PROG.PAS, компилирует его и запускает на выполнение.
{$M 16384, 0,0}
Uses DOS;
Var F: Text;
………………….
Begin
Assign (F, ‘PROG.PAS’);
<коррект. действия>
SwapVectors;
EXEC(’TPC.EXE’,’/L PROG.PAS’);
SwapVectors;
IF DosError <> 0 Then
<сообщение и выход>
ELSE Begin
SwapVectors;
ЕХЕС(‘PROG.EXE’,’ ’);
SwapVectors;
End;
……………………
End.


27.01.2014; 07:49
хиты: 213
рейтинг:0
для добавления комментариев необходимо авторизироваться.
  Copyright © 2013-2024. All Rights Reserved. помощь