<<
>>

Управление задачами. Вызов дочерних процессов

С точки зрения MS DOS каждая программа (задача) представляет собой процесс. При запуске процессу выделяется память и передаются окружение и параметры командной строки MS DOS.

Окружение - это специальная область памяти, в которой размещены в виде символьных строк некоторые параметры, установленные в DOS.

Например:

COMSPEC=C:\COMMAND.COM {адрес интерпретатора команд

MS DOS}

PATH=C:\QEMM;C:\DOS;C:\NC {каталоги автоматического поиска}

PROMPT=$p$q {вид запроса в командной строке MS DOS}

Пользователь может включить в окружение другие строки, используя команду SET.

Для работы с окружением модуль DOS содержит следующие ресурсы.

1. Функция EnvCount: integer - возвращает количество переменных окружения, содержащихся в среде MS DOS.

2. Функция EnvStr(Index:integer):string - возвращает переменную окружения MS DOS с указанным индексом.

3. Функция GetEnv(EnvVar:string):string - возвращает переменную окружения MS DOS с указанным именем.

Используя эти функции, можно, например, определить в системе местоположение каталога временных файлов, обычно заданного в MS DOS параметром work:

flag—false; i:-l;

while (iC:\My\copyfile A.dat B.dat 80

В модуле DOS имеются средства, обеспечивающие доступ к этим параметрам.

1. Функция ParamCount:integer - возвращает количество параметров.

2. Функция ParamStr(Index:integer):string - возвращает параметр с указанным индексом в виде символьной строки, например для программы, вызов которой приведен выше:

ParamCount = 3 ParamStrfO] = C:\My\copyfile ParamStr[l] = ‘A.dat’

ParamStr[2] = ‘B.dat’

ParamStr[3] = ‘80’

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

При вызове дочерних процессов обычно используются специальные ресурсы модуля DOS.

1. Процедура Ехес (^полное имя файла программы>,

:$/гш#) - осуществляет вызов дочернего процесса.

2. Функция DosExitCode:word - возвращает код завершения дочернего процесса.

Старший байт этого кода интерпретируется следующим образом:

0 - нормальное завершение;

1 - завершение по Ctrl - С;

2 - завершение по ошибке;

3 - завершение с сохранением в памяти.

Младший байт содержит код возврата дочернего процесса (параметр Halt).

3. Процедура SwapVectors - сохраняет в памяти настройки (например, адреса обработчиков прерываний) среды Borland Pascal или восстанавливает их, если они были сохранены:

DOS->Pascal -> ООБСдочерний процесс) Pascal->DOS

SwapVectors SwapVectors

Данная процедура должна выполняться, если дочерний процесс - программа, написанная на любом языке, кроме Borland Pascal.

При вызове дочерних процессов также используется специальная директива управления памятью, иначе выполняемая программа получает всю имеющуюся память и дочерний процесс некуда грузить:

($М , ,

}

где размер стека - от 1024 до 65520 байт; минимальный размер «кучи» - от 0 до 655360 байт; максимальный размер «кучи» - от минимального до 655360 байт.

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

f$M $4000,0,0} {стек 16К, кучи нет}

Program ex;

Uses Dos;

begin

WriteLnC Вызываем дочерний процесс ... ’);

SwapVectors;

Exec(‘c: \utils\bitmap. exe ‘r24.pcx );

SwapVectors;

WriteLn(‘... вернулись в основную программу');

ifDosError 0 then {если есть ошибка при вызове дочернего

процесса}

WriteLn(‘Ouiu6Ka DOS # DosError)

else

WriteLnC Дочерний процесс вызван. Код завершения =

DosExitCode); {код завершения дочернего процесса}

End.

<< | >>
Источник: Иванова Г.С. Основы программирования. 2002

Еще по теме Управление задачами. Вызов дочерних процессов:

  1. Психологические цели, задачи,подходы в управлении.
  2. Поведенческая основа процесса управления.
  3. Сущность процесса управления в организациях.
  4. СОСТАВЛЯЮЩИЕ ПРОЦЕССА, ОСНОВНЫЕ ЗАДАЧИ И ФОРМЫ РАБОТЫ
  5. Правовой статус, основные задачи и функции органов государственного управления
  6. § 1. ПОНЯТИЕ О ПЕДАГОГИЧЕСКОЙ ДЕЯТЕЛЬНОСТИ КАК ПРОЦЕССЕ НЕПРЕРЫВНОГО РЕШЕНИЯ ПРОФЕССИОНАЛЬНЫХ ЗАДАЧ
  7. РАЗДЕЛ III. СОЦИОЛОГИЧЕСКОЕ ОБЕСПЕЧЕНИЕ ПРОЦЕССОВ УПРАВЛЕНИЯ СОЦИАЛЬНОЙ СФЕРОЙ
  8. Психологические особенности управления инновационным процессом в правоохранительных органах.
  9. Специфической особенностью творческих процессов решения задач является присутствие в них интуиции.
  10. Психологические особенности управления инновационным процессом в правоохранительных органах.
  11. §18. ДОЧЕРНЕЕ И ЗАВИСИМОЕ ОБЩЕСТВА
  12. 56. Понятие дочерних и зависимых обществ, их виды
  13. 7. Дочерние и зависимые общества
  14. Бросьте себе вызов
  15. ВЫЗОВ ВРАЧА
  16. СПТ откликается на вызов обстоятельств
  17. Быстрый вызов желаемого