Книга: Язык программирования Си для персонального компьютера

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

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

Функция Краткое описание
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. Передача аргументов массивом означает, что аргументы помещаются в массив и указатель на массив передается порождаемому процессу. Передача списком обычно используется, когда число аргументов постоянно и известно заранее, а метод передачи аргументов массивом полезен, когда число аргументов должно быть определено во время работы. Последнее поле определяет: унаследует ли порождаемый процесс от родителя окружение, или оно будет изменено для него.

Таблица 9.1.

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

Оглавление книги


Генерация: 0.043. Запросов К БД/Cache: 0 / 0
поделиться
Вверх Вниз