Профтемы студенту и преподавателю
Taketop.ru
СТУДЕНТУ И ПРЕПОДАВАТЕЛЮ
лекции по дисциплинам
Информатика и вычислительная техника :: Операционные системы и среды
Прогон программы с использованием системного вызова exec()
Для иллюстрации использования системного вызова exec() давайте рассмотрим следующую программу
/* Программа 03-2.с, изменяющая пользователь-
ский контекст процесса (запускающая
   другую программу) */

#include <sys/types.h>
#include <unistd.h>
#include <stdio.h>
int main(int argc, char *argv[],
         char *envp[]){

/* Мы будем запускать команду cat c аргументом
   командной строки 03-2.с без изменения
   параметров среды, т.е. фактически выполнять
   команду "cat 03-2.c", которая должна выдать
   содержимое данного файла на экран. Для
   функции execle в качестве имени программы
   мы указываем ее полное имя с путем от
   корневой директории —/bin/cat.

   Первое слово в командной строке у нас
   должно совпадать с именем запускаемой
   программы. Второе слово в командной строке
   – это имя файла, содержимое которого мы
   хотим распечатать. */

(void) execle("/bin/cat", "/bin/cat",
              "03-2.c", 0, envp);

/* Сюда попадаем только при
   возникновении ошибки */
printf("Error on program start\n");
exit(-1);
return 0;     /* Никогда не выполняется, нужен
                 для того, чтобы компилятор не
                 выдавал warning */
}
 
Откомпилируйте ее и запустите на исполнение. Поскольку при нормальной работе будет распечатываться содержимое файла с именем 03-2.c, такой файл при запуске должен присутствовать в текущей директории (проще всего записать исходный текст программы под этим именем). Проанализируйте результат.


Работы, представленные на сайте http://taketop.ru, предназначено исключительно для ознакомления. Все права в отношении работ и/или содержимого работ, представленных на сайте http://taketop.ru, принадлежат их законным правообладателям. Администрация сайта не несет ответственности за возможный вред и/или убытки, возникшие или полученные в связи с использованием работ и/или содержимого работ, представленных на сайте http://taketop.ru
Рейтинг@Mail.ru
Сайт управляется SiNG cms © 2010-2015