Функции execl ()
Функции execl (), execle () и execlp () передают аргументы командной строки в виде списка. Количество аргументов командной строки должно быть известно во время компиляции.
• int execl(const char *path,const char *arg0,.../*,(char * )0 */);
Здесь path — путевое имя выполняемой программы. Его можно задать в виде полного составного имени либо относительного составного имени из текущего каталога. Последующие параметры представляют собой список аргументов командной строки, от arg0 до argn. Всего может быть n аргументов. Этот список завершается NULL -указателем.
• int execle(const char *path,const char *arg0,.../*,(char *)0 *, char *const envp[]*/);
Эта функция аналогична функции execl () с одним отличием: она имеет дополнительный параметр, envp[]. Этот параметр указывает на новую среду для нового процесса, т.е. envp[] — это указатель на строковый массив с завершающим нулевым символом. Каждая его строка, также завершающаяся нулевым символом, имеет следующую форму:
name=value
Здесь name — имя переменной среды, а value — сохраняемая строка. Значение параметру envp [] можно присвоить следующим образом:
char *const envp[] = {«PATH=/opt/kde2:/sbin», «HOME=/home»,NULL};
Здесь PATH и НОМЕ — переменные среды.
• int execlp(const char *file,const char *arg0,.../*, (char *)0 */);
Здесь file — имя выполняемой программы. Для определения местоположения выполняемых программ используется переменная среды PATH. Остальные параметры представляют собой список аргументов командной строки (см. описание функции execl() ) .
Вот примеры применения синтаксиса функций execl () с различными аргументами:
char *const args[] = {«direct»,".»,NULL};
char *const envp[] = {«files=50»,NULL};
execl("/path/direct», «direct», ".», NULL) ;
execle("/path/direct»,«direct»,".»,NULL,envp);
execlp(«direct», «direct», " . ",NULL) ;
Здесь в каждом примере вызова execl -функции активизированный процесс выполняет программу direct.
Синопсис
#include <unistd.h>
int execl(const char *path,const char *arg0,.../*,(char *)0 */);
int execle(const char *path,const char *arg0,.../*,(char *)0 *,char *const envp[]*/);
int execlp(const char *file,const char *arg0,.../*,(char *)0 */);
int execv(const char *path,char *const arg[]);
int execve(const char *path,char *const arg[],char *const envp[]); int execvp(const char *file,char *const arg[]);
Больше книг — больше знаний!
Заберите 30% скидку новым пользователям на все книги Литрес с нашим промокодом
ПОЛУЧИТЬ СКИДКУ