НазадОглавлениеДалее

9.10. Управление процессами

ФункцияКраткое описание
abortзавершить процесс
execlвыполнить порождаемый процесс со списком аргументов
execleвыполнить порождаемый процесс со списком аргументов и заданным окружением (контекстом имен командного языка операционной системы)
execlpвыполнить порождаемый процесс, используя переменную PATH и список аргументов
execlpeвыполнить порождаемый процесс, используя переменную PATH, заданное окружение и список аргументов
execvвыполнить порождаемый процесс с массивом аргументов
execveвыполнить порождаемый процесс с массивом аргументов и заданным окружением
execvpвыполнить порождаемый процесс, используя переменную PATH и массив аргументов
execvpeвыполнить порождаемый процесс, используя переменную PATH, заданное окружение и массив аргументов
exitзавершить процесс
_exitзавершить процесс без скидывания буферов
signalуправление сигналом прерывания
spawnlвыполнить порождаемый процесс со списком аргументов
spawnleвыполнить порождаемый процесс со списком аргументов и заданным окружением
spawnlpвыполнить порождаемый процесс, используя переменную PATH и список аргументов
spawnlpeвыполнить порождаемый процесс, используя PATH переменную, заданное окружение и список аргументов
spawnvвыполнить порождаемый процесс с массивом аргументов
spawnveвыполнить порождаемый процесс с массивом аргументов и заданным окружением
spawnvpвыполнить порождаемый процесс, используя переменную PATH и массив аргументов
spawnvpeвыполнить порождаемый процесс, используя PATH переменную, заданное окружение и массив аргументов
systemвыполнение команды MS-DOS

Система программирования MSC предоставляет дополнительно функции:
ФункцияКраткое описание
getpidполучить номер процесса
onexitвыполнить функцию при завершении программы

Термин "процесс" относится к программе, которая выполняется под управлением операционной системы.

Процесс состоит из кодов программы и данных, а также информации о состоянии процесса, такой, как число открытых файлов.

Где бы ни выполнялась программа на уровне MS-DOS, запускается процесс. Можно запустить, остановить и управлять процессом из программы, используя функции управления процессом.

Прототипы всех функций управления процессами объявлены в файле process.h (исключая функцию signal).

Прототип функции signal содержится в файле signal.h.

Функции управления процессом позволяют следующее:

1) Узнать уникальный номер процесса (getpid).

2) Завершить процесс (abort, exit, _exit).

3) Управлять сигналами прерывания (signal).

4) Начать новый процесс (разновидности ехес и spawn функции, system функция).

Функции abort и _exit осуществляют немедленное завершение без скидывания буферов потоков, функция exit осуществляет выход после скидывания буферов потоков.

Функция system вызывает на выполнение заданную команду MS-DOS. Функции ехес и spawn создают новый процесс, называемый порождаемым процессом. Разница между функциями ехес и spawn в том, что spawn способна возвращать управление из порождаемого процесса к его родителю. Оба, и родитель, и порождаемый процесс, размещаются в памяти (если не указан флаг P_OVERLAY).

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

В таблице описывается способ формирования ехес и spawn.

Имя функции задается в первом поле. Второе поле определяет: используется ли переменная PATH для поиска файла для выполнения, который определяет порождаемый процесс.

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

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

Последнее поле определяет: унаследует ли порождаемый процесс от родителя окружение, или оно будет изменено для него.
ФункцияИспользование PATH переменнойСпособ передачи аргументовОкружение
execl, spawnlне использует PATHсписок аргументовнаследует от родителя
execle, spawnleне использует PATHсписок аргументовуказатель на таблицу окружения (последний аргумент)
execlp, spawnlpиспользует PATHсписок аргументовнаследует от родителя
execlpe, spawnlpeиспользует PATHсписок аргументовуказатель на таблицу окружения (последний аргумент)
execv, spawnvне использует PATHмассив аргументовнаследует от родителя
execve, spawnveне использует PATHмассив аргументовуказатель на таблицу окружения (последний аргумент)
execvp, spawnvpиспользует PATHмассив аргументовнаследует от родителя
execvpe, spawnvpeиспользует PATHмассив аргументовуказатель на таблицу окружения (последний аргумент)


НазадОглавлениеДалее