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

Ваш аккаунт

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

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

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

execl - execvp - запустить процесс

Описание

      exec - функции  создают  и выполняют новый порожденный
      процесс.  Успешное  выполнение  exec вызывает замену в
      памяти родительского процесса на порожденный  процесс,
      для которого должно быть достаточно памяти. Exec пере-
      записывает новую программу на место текущей и начинает
      исполнение. Name специфицирует эту программу. Если эта
      спецификация не содержит описания пути  доступа к фай-
      лу программы и файл не содержится  в текущем каталоге,
      то в случае execvp и execlp для поиска файла использу-
      ется переменная окружения PATH.  Параметры обращения к
      подпроцессу образуются из строк литер,  заданных в об-
      ращении к exec. Они образуют список аргументов,  сово-
      купная длина которых,  исключая arg0, не должна превы-
      шать 128 символов. Аргумент arg0 игнорируется. Он вклю-
      чен по соображениям совместимости.  Аргумент argv, ис-
      пользуемый в execv и execvp,  является массивом указа-
      телей на строки.  Последний указатель  в  argv  должен
      быть NULL.

Использование

      #include <process.h>
      #include <errno.h>    /* Только для контроля ошибок */
      int execl(char * name, char *arg0, *arg1,..., *argn,
                                                      NULL);
      int execv(char * name, char *argv[]);
      int execlp(char * name, char *arg0, *arg1,..., *argn,
                                                      NULL);
      int execvp(char * name, char *argv[]);

Возвращаемое значение

      В случае успешного обращения exec не возвращает управ-
      ления. В случае ошибки возвращает значение -1. Внешняя
      переменная errno будет установлена в значение, иденти-
      фицирующее ошибку.  Эти значения декларированы в файле
      errno.h:
         E2BIG  - Список аргументов превышает 128 байт.
	 ENOENT - Не найден файл.

Пример

      #include <process.h>
      #include <errno.h>
      #include <stdio.h>
      main(int argc, char * argv[])
      {
        char *args[4];
        int result;
        arg[0] = "arg0";
        arg[1] = "arg1";
        arg[2] = "arg2";
        arg[3] = "arg3";
        switch (argv[1][0])
        {
          case `1':
             execl("myprog.exe", "arg0", "arg1", "arg2",
                                               "arg3",NULL);
             break;
          case `2':
             execlp("myprog.exe", "arg0", "arg1", "arg2",
                                              "arg3", NULL);
             break;
          case `3':
             execv("myprog.exe", "args");
             break;
          case `4':
             execvp("myprog.exe", "args");
             break;
          default:
             printf("Введите число между 1 и 4 в командной
                                                 строке\n");
             exit(1);
        }
          printf("Процесс myprog.exe не исполнен.\n");
      }

Рекомендация

      Смотрите также abort, exit, spawn, system.

оглавление

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

Комментарий:
можно использовать BB-коды
Максимальная длина комментария - 4000 символов.
 
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог