execl, execlp, execle, execv, execvp - виконати файл
конспект
#include <unistd.h>
зовнішній символ * * environment;
int execl (const char * path , const char * arg , …);
int execlp (const char * file , const char * arg , …);
int execle (const char * path , const char * arg , …, char * const envp []);
int execv (const char * path , char * const argv []);
int execvp (const char * file , char * const argv []);
Опис функцій exec
Exec сімейство функцій замінює поточний образ процесу новим процесом зображення. Функції, описані на цій сторінці підручника, є зовнішніми для функції execve. (Див. Сторінка підручника execve, щоб дізнатися більше про заміну поточного процесу).
Початковим аргументом для цих функцій є шлях до файлу, який повинен бути виконаний.
Const символ * Arg і наступні еліпси в execl, функцій мають і execle функції можна розглядати як arg0, arg1,..., АГРН. Разом вони описують список з одного або декількох індексів на рядки з нульовим символом в кінці, які представляють список аргументів, доступних для виконуваної програми. Перший аргумент, згідно з угодою, повинен вказувати на назву файла, пов'язаного з виконуваним файлом. Список аргументів повинен закінчуватися індексом NULL.
Функції execv і execvp надають масив індексів на рядки з нульовим символом в кінці, які представляють список аргументів, доступних для нової програми. Перший аргумент, згідно з угодою, повинен вказувати на назву файла, пов'язаного з виконуваним файлом. Масив індексів повинен закінчуватися нульовим покажчиком.
Функція execle також визначає середовище виконуваного процесу за допомогою індексу NULL, який завершує список аргументів у списку параметрів, або індексу на масив argv з додатковим параметром. Цей додатковий параметр є масивом індексів на рядки з нульовим символом в кінці і повинен закінчуватися індексом NULL. Інші функції приймають середовище нового способу процесу із зовнішньої змінної середовища в поточному процесі.
Деякі з цих функцій мають особливу семантику.
Функції execlp і execvp будуть дублювати дії оболонки під час пошуку виконуваного файла, якщо вказана назва файла не містить косу межу (/). Шлях пошуку - це шлях, вказаний у середовищі змінної PATH. Якщо ця змінна не вказана, використовується типовий шлях ": / bin: / usr / bin ». Крім того, деякі помилки обробляються спеціально.
Якщо для файлу відмовлено у дозволі (спроба execve повернула EACCES), ці функції продовжать пошук по решті шляху пошуку. Якщо немає іншого файла, однак вони повернуться з глобальною змінною Errno набору до EACCES.
Якщо заголовок файла не розпізнаний (спроба execve повернула ENOEXEC), ці функції будуть виконувати оболонку з шляхом до файлу як перший аргумент. (Якщо ця спроба не вдалася, подальший пошук не проводиться.)
Повертається значення функцій exec
Якщо якась з функцій exec повернеться, відбудеться помилка. Значення -1, яке повертається, і глобальну змінну errno буде встановлено.
