CodeNet / Языки программирования / C / C++ / Руководства и справочные материалы по C/C++ / Справочники по функциям / Справочник по библиотечным функциям языка Си
spawn - создать процесс
Описание
Системный вызов spawn создает и исполняет новый про-
цесс - потомок. Более просто - запускается новая прог-
рамма и затем старая программа продолжается. Системный
вызов работает подобно вызову подпрограммы.
Создание нового подпроцесса требует наличия свободной
памяти, доступной для исполнения порожденного процесса,
наряду с той, что занята текущей программой. Смотрите
введение в этот раздел руководства, где описана работа
с памятью при вызове spawn. Флаг mode игнорируется. Он,
возможно, будет использоваться в последующих версиях.
Для mode используйте значение 0.
Аргумент filename определяет запускаемую программу.
Только для spawnlp и spawnvp: если filename не содер-
жит маршрута и не находится в текущем каталоге, то для
поиска файла используется переменная окружения PATH.
Argv[0] не передается подпроцессу и используется лишь
для совместимости, но в целях переносимости должен
быть всегда включен. Этот параметр должен быть именем
запускаемой программы.
Командная строка, передаваемая порождаемой программе,
составляется из символьных строк в spawn вызове, пер-
вая строка - это arg1 и т.д. Общая длина этих строк
не должна превышать 128 символов.
Аргумент argv, используемый в вызовах spawnv и spawnp,
является массивом указателей на char. Последний указа-
тель в argv должен быть NULL для индикации конца спис-
ка.
Использование
#include <process.h>
int spawnl(int mode, char *pathname,
char *arg0, *arg1, ... , *argn, NULL);
int spawnlp(int mode, char *filename,
char *arg0, *arg1, ... , *argn, NULL);
int spawnv(int mode, char *pathname, char *argv[]);
int spawnvp(int mode, char *filename, char *argv[]);
Возвращаемое значение
Возвращаемое значение дает статус завершения порожден-
ной программы. Значение 0 говорит о том, что порожден-
ная программа выполнилась успешно. Положительное зна-
чение говорит о том, что порожденная программа испол-
нилась, но была сброшена или завершилась из-за ошибки
исполнения; возвращаемое значение является статусом
завершения порожденного процесса. Отрицательное значе-
ние говорит о том, что порожденный процесс не был
исполнен, и устанавливается errno.
Пример
#include <stdio.h>
main()
{
char *args[4];
args[0] = "ztc1.exe";
args[1] = "stuff";
args[2] = "morestuff";
args[3] = NULL;
if (spawnv(0, "C:ZTC1.EXE", args) == -1)
fprintf(stderr, "exec failed!\n");
}
Рекомендация
Смотрите также abort, exit, exec, system.
Оставить комментарий
Комментарии
1.
+1 / -0


28 марта 2005, 14:21:54
Можно ли вызвать с помощью spawnlp с параметрами P_WAIT процесс так, чтобы DOS'овское окно не было видно или оно открывалось на заднем плане?
