Описание Библиотеки Си

       

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


Функция

Краткое описание

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

spawnl

не использует PATH

список аргументов

наследует от родителя

execle

spawnle

не использует PATH

список аргументов

указатель на таблицу окружения (последний аргумент)

execlp

spawnlp

использует PATH

список аргументов

наследует от родителя

execlpe

spawnlpe

использует PATH

список аргументов

указатель на таблицу окружения (последний аргумент)

execv

spawnv

не использует PATH

массив аргументов

наследует от родителей

execve

spawnve

не использует PATH

массив аргументов

указатель на таблицу окружения (последний аргумент)

execvp

spawnvp

использует PATH

массив аргументов

наследует от родителя

execvpe

spawnvpe

использует PATH

массив аргументов

указатель на таблицу окружения (последний аргумент)


Содержание раздела