Команда Linux/Unix: execvp

Семейство функций exec заменяет текущий образ процесса новым образом процесса. Описанные здесь функции являются интерфейсом для функции execve (2).

Начальным аргументом для этих функций является путь к файлу, который должен быть выполнен.

Функции const char * arg и последующие эллипсы в функциях execl , execlp и execle можно рассматривать как arg0 , arg1 , …, argn . Вместе они описывают список из одного или нескольких указателей на строки с нулевым символом в конце, которые представляют список аргументов, доступных для исполняемой программы. Первый аргумент, по соглашению, должен указывать на имя файла, связанного с исполняемым файлом. Список аргументов должен завершаться указателем NULL .

Функции execv и execvp предоставляют массив указателей на строки с нулевым символом в конце, которые представляют список аргументов, доступных для новой программы. Первый аргумент, по соглашению, должен указывать на имя файла, связанного с исполняемым файлом. Массив указателей должен завершаться указателем NULL .

Функция execle также определяет среду исполняемого процесса, следуя указателю NULL , который завершает список аргументов в списке параметров или указатель на массив argv с дополнительным параметр. Этот дополнительный параметр является массивом указателей на строки с нулевым символом в конце, и должен завершаться указателем NULL . Другие функции извлекают среду для нового образа процесса из внешней переменной environment в текущем процессе.

Некоторые из этих функций имеют особую семантику.

Функции execlp и execvp будут дублировать действия оболочки при поиске исполняемого файла, если указанное имя файла не содержит символ косой черты (/). Путь поиска – это путь, указанный в среде переменной PATH . Если эта переменная не указана, используется путь по умолчанию “:/bin:/usr/bin ”. Кроме того, некоторые ошибки обрабатываются специально.

Если для файла отказано в разрешении (попытка execve вернула EACCES ), эти функции продолжат поиск по оставшейся части пути поиска. Однако если другой файл не найден, он вернется с глобальной переменной errno , для которой установлено значение EACCES .

Если заголовок файла не распознан (попытка execve вернула ENOEXEC ), эти функции будут выполнять оболочку с путем к файлу в качестве первого аргумента. (Если эта попытка не удалась, дальнейший поиск не производится.)

Возвращаемое значение

Если какая-либо из функций exec вернется, произойдет ошибка. Возвращаемое значение равно -1, и глобальная переменная errno будет установлена ​​для указания ошибки.

Используйте команду man (% man ), чтобы увидеть, как команда используется на вашем конкретном компьютере.

название

execl, execlp, execle, execv, execvp – выполнить файл

конспект

#включают

внешний символ ** environment;

int execl (const char * путь , const char * arg , …); int execlp (const char * file , const char * arg , …); int execle (const char * путь , const char * arg , …, char * const envp []); int execv (const char * путь , char * const argv []); int execvp (const char * файл , char * const argv []);

Оцените статью
Solutics.ru
Добавить комментарий