Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

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.

оглавление

Оставить комментарий

Комментарий:
можно использовать BB-коды
Максимальная длина комментария - 4000 символов.
 

Комментарии

1.
Аноним
+1 / -0
Мне нравитсяМне не нравится
28 марта 2005, 14:21:54
Можно ли вызвать с помощью spawnlp с параметрами P_WAIT процесс так, чтобы DOS'овское окно не было видно или оно открывалось на заднем плане?
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог