КАТЕГОРИИ: Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748) |
Замечания
Прототип в process.h Порожденные процессы А. В. Бабушкин тел/факс: 8 – (499) - 478-95-15, 478-08-47
Функции, запускающие порождённый процесс 1. spawn... 2. execl… 3. CreateProcessW()
spawn...
Назначение: Создает и запускает порожденный процесс
Синтаксис
#include <process.h> #include <stdio.h>
int spawnl(int mode, char *path, char *arg0, arg1,...,argn, NULL); int spawnle(int mode, char *path, char *arg0, arg1,..., argn, NULL, char *envp[]); int spawnlp(int mode, char *path, char *arg0, arg1,...,argn,NULL); int spawnlpe(int mode, char *path, char *arg0, arg1,..., argn, NULL, char *envp[]); int spawnv(int mode, char *path, char *argv[]); int spawnve(int mode, char *path, char *argv[], char *envp[]); int spawnvp(int mode, char *path, char *argv[]); int spawnvpe(int mode, char *path, char *argv[], char *envp[]);
Функции семейства spawn... создают и запускают (выполняют) другие файлы, называемые порожденными процессами (процессами-потомками). При этом должно быть достаточное количество памяти для загрузки и выполнения порожденных процессов. Значение mode определяет действия вызывающей программы (процесса-родителя) после вызова spawn...
path является маршрутом доступа к файлу, вызываемого порожденного процесса. Функция spawn...вызывает поиск для path используя стандартный алгоритм поиска DOS: · - Нет расширения или нет точки в конце: выполняется поиск для заданного имени файла; в случае неудачи, добавляется.EXE и поиск повторяется. · - Расширение задано: выполняется поиск только для заданного имени.
· - Задана точка в конце: поиск выполняется только для заданного имени файла с нулевым расширением. · - Если path не вxодит в заданный каталог, функция spawn..., которая имеет суффикс p будет искать в текущем каталоге, затем устанавливаются каталоги согласно команды PATH в DOS. Суффиксы l, v, p и e, добавленные к spawn..., определяют семейство имен функций, которые будут выполняться с определенными возможностями.
Каждая функция из семейства spawn... должна иметь один из двуx суффиксов (или l, или v). Суффиксы "поиск пути" и "наследственная среда" (p и e) являются необязательными. Например: - spawnl берет отдельные аргументы, выполняет поиск только в текущем каталоге и вxодит с родительским наследием в порожденный процесс. - spawnvpe берет массив указателей аргументов, вносит PATH в поиск для порожденного процесса и принимает envp аргумент для изменения среды порожденного процесса. Функции spawn... должны передавать хотя бы один аргумент в порожденный процесс (arg0 или argv[0]): этот аргумент, согласно условия, является копией path. (Использование различных значений для этого нулевого аргумента не приводит к ошибке). Для DOS 3.x path применим для порожденного процесса, для более ранних версий порожденный процесс не может использовать входное значение 0-го аргумента (arg0 или argv[0]). Когда используется суффикс l (spawnl и т.д.), arg0 обычно указывает на path, а arg1,..,argn указывают на символьные строки, которые составляют новый список аргументов. Установка нуля, следующего за argn, расценивается как конец этого списка.
Когда используется суффикс e (spawnvpe и т.д.), вы заносите список новыx установок среды через аргумент envp. Этот аргумент является масивом символьныx указателей. Каждый элемент указывает нуль-ограничитель символьной строки формы: envvar = value, где envvar является именем переменной среды, а value - строковое значение в которое устанавливается envvar. envp[] заканчивается нулем. Когда envp=0, порожденный процесс наследует родительские установки среды. Комбинированная длина arg0+arg1+...+argn (или argv[0]+argv[1]+...+argv[n]), включающая пространство символов разделяющих аргументы, должна быть < 128 байт. Нуль-ограничитель в расчет не берется. Когда сделан вызов функции spawn..., любые открытые файлы остаются открытыми в порожденном процессе.
Дата добавления: 2015-06-29; Просмотров: 220; Нарушение авторских прав?; Мы поможем в написании вашей работы! Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет |