[<<Previous Entry]
[^^Up^^]
[Next Entry>>]
[Menu]
[About The Guide]
Использование execl(2) - Пример
Эта программа демонстрирует использование системного вызова execl(2).
9-10 Системный вызов execl(2) использует список параметров.
newpgm имя программы, которую следует исполнить
newpgm значение argv[0] новой программы
parm1 значение argv[1] новой программы
parm2 значение argv[2] новой программы
parm3 значение argv[3] новой программы
(char *)0 конец списка параметров. Он необходим, потому что
execl(2) может быть передано произвольное число
параметров.
12 Исходная программа exec1 распечатает сообщение об ошибке,
только если execl(2) завершится неудачно. Это может
произойти, например, если требуемая программа не может быть
исполнена или был передан неправильный параметр, такой как
недопустимый указатель.
Когда исполняется newpgm, из параметров execl(2) создается новый
список argv[]. Переменные среды исполнения наследуются от вызывающего
процесса.
Файл: exec1.c
ИСПОЛЬЗОВАНИЕ execl(2) - ПРИМЕР
1 #include <unistd.h>
2 #include <stdio.h>
3
4 main()
5 {
6
7 printf("this is the original program\n");
8
9 execl("newpgm", "newpgm", "parm1", "parm2",
10 "parm3", (char *) 0);
11
12 perror("This line should never get printed\n");
13 }
$ exec1
this is the original program
My input parameters(argv) are:
0: 'newpgm'
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