[<<Previous Entry]
[^^Up^^]
[Next Entry>>]
[Menu]
[About The Guide]
Использование execve(2) - Пример
Эта программа исполняет новую программу с помощью execve(2)
9-13 nenv[] - список указателей на новые значения переменных среды
исполнения. Он имеет такую же форму, как и nargv[]. Каждый элемент
nenv[] указывает на строку, похожую на оператор присваивания shell:
"имя=значение"
17 Третий параметр execve(2) - это адрес списка новых переменных
среды.
18-19 Закомментирован вызов execle(2). Он приведет к тому же
результату.
Файл: exec3.c
ИСПОЛЬЗОВАНИЕ execve(2) - ПРИМЕР
1 #include <unistd.h>
2 #include <stdio.h>
3
4 main()
5 {
6 char *nargv[ ] = {
7 "newpgm", "parm1", "parm2", "parm3",
8 (char *) 0 };
9 char *nenv[ ] = {
10 "NAME=value",
11 "nextname=nextvalue",
12 "HOME=/xyz",
13 (char *) 0 };
14
15 printf("this is the original program\n");
16
17 execve("newpgm", nargv, nenv);
18 /* execle("newpgm", "newpgm", "parm1", "parm2",
19 "parm3", (char *) 0, nenv); */
20
21 perror("This line should never get printed\n");
22 }
$ exec3
this is the original program
My input parameters(argv) are:
0: 'newpgm'
1: 'parm1'
2: 'parm2'
3: 'parm3'
My environment variables are:
NAME=value
nextname=nextvalue
HOME=/xyz