Научете командата Linux - execv

execl, execlp, execle, execv, execvp - изпълнявате файл

резюме

#include

външен знак ** среда;

int execl (const char * път , const char * arg , ...);
int execlp (const char * файл , 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 []);

Описание на функциите exec

Семейството от функции на exe замества текущото изображение на процеса с ново изображение на процеса . Функциите, описани в тази страница на ръководството, са предния край на функцията execve (2). (Вижте ръководството за изпълнение за подробна информация за подмяната на текущия процес.)

Първоначалният аргумент за тези функции е пътят на файл, който трябва да бъде изпълнен.

Константният char * arg и последващите елипси в execl , execlp и execle функциите могат да бъдат смятани за arg0 , arg1 , ..., argn . Заедно те описват списък с един или повече указатели към низово прекъснати низове, които представят списъка с аргументи, наличен за изпълняваната програма. Първият аргумент по конвенция трябва да сочи към името на файла, свързано с изпълнения файл. Списъкът на аргументите трябва да бъде прекратен от показалец NULL .

Функциите execv и execvp осигуряват масив от указатели към низово прекъснати низове, които представят списъка с аргументи, достъпен за новата програма. Първият аргумент по конвенция трябва да сочи към името на файла, свързано с изпълнения файл. Масивът на указателите трябва да бъде прекратен от показалец NULL .

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

Някои от тези функции имат специална семантика.

Функциите execlp и execvp ще дублират действията на черупката при търсене на изпълним файл, ако посоченото име на файл не съдържа знак на наклонена черта (/). Пътят за търсене е пътят, определен в средата от променливата PATH . Ако тази променлива не е посочена, използва се пътят по подразбиране ``: / bin: / usr / bin ''. Освен това някои грешки се третират специално.

Ако разрешението бъде отказано за даден файл (опитът за изпълнение върна EACCES ), тези функции ще продължат да търсят останалата част от пътя за търсене. Ако обаче не се намери друг файл, те ще се върнат с глобалната грешка, зададена в EACCES .

Ако заглавката на файла не се разпознае (опитът за изпълнение върна ENOEXEC ), тези функции ще изпълнят обвивката с пътя на файла като своя първи аргумент. (Ако този опит не успее, не се прави по-нататъшно търсене.)

Връщаща се стойност на функциите за изпълнение

Ако някоя от функциите на оператора се върне, ще възникне грешка. Стойността на връщането е -1, а глобалната променлива errno ще бъде зададена да показва грешката.