Выбрать главу

Система программирования 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      
Поиск и сортировка

Следующие библиотечные функции предназначены для поиска и сортировки в массиве:

Функция Краткое описание bsearch выполняет двоичный поиск lfind выполняет линейный поиск для заданного значения lsearch выполняет линейный поиск для заданного значения, которое добавляется в массив, если не найдено qsort выполняет быструю сортировку