[<<Previous Entry] [^^Up^^] [Next Entry>>] [Menu] [About The Guide]
 Использование execv(2) - Пример

Эта программа исполняет новую программу, используя execv(2).
6-8  nargv[] - массив указателей на строки, представляющие собой
аргументы новой программы. Последним элементом nargv[] должен быть
нулевой адрес, отмечающий конец списка. В этом примере аргументы
таковы: "diffnm", "parm1", "parm2" и "parm3". Замечание: nargv[0]
отличается от первого параметра execv - имени запускаемой программы.
   13     Второй аргумент execv(2) - адрес массива, содержащего адреса
          параметров новой  программы. Использование  списка позволяет
          динамически формировать этот список в программе.

Переменные среды наследуются от вызывающего процесса.
Файл: exec2.c
                   ИСПОЛЬЗОВАНИЕ execv(2) - ПРИМЕР

 1 #include <unistd.h>
 2 #include <stdio.h>
 3
 4 main()
 5 {
 6     char *nargv[ ] = {
 7                 "diffnm", "parm1", "parm2", "parm3",
 8         (char *) 0 };
 9
10     printf("this is the original program\n");
11
12     execv("newpgm", nargv);
13
14     perror("This line should never get printed\n");
15 }

$ exec2
this is the original program
My input parameters(argv) are:
     0: 'diffnm'
     1: 'parm1'
     2: 'parm2'
     3: 'parm3'

My environment variables are:
    HOME=/uxm2/jrs
    LOGNAME=jrs
    MAIL=/var/mail/jrs
    PATH=/usr/bin:/usr/lbin/:/uxm2/jrs/bin:.
    TERM=5420
    TZ=EST5EDT