[<<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