Запознајте се со командата Линукс - execv

execl, execlp, execle, execv, execvp - изврши датотека

Синопсис

# Вклучи

extern char ** environment;

int execl (const char * патека , const char * arg , ...);
int execlp (const char * датотека , 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 * датотека , char * const argv []);

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

Фамилијата на функции exec ја заменува моменталната процесна слика со нова слика на процесот . Функциите опишани во ова упатство се предни краеви за функцијата execve (2). (Погледнете ја страницата за упатства за извршување за детални информации за замена на тековниот процес.)

Почетниот аргумент за овие функции е патеката на датотека што треба да се изврши.

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

Функциите execv и execvp обезбедуваат низа на покажувачи до низи со низи што ја претставуваат листата на аргументи достапни за новата програма. Првиот аргумент, по конвенција, треба да укаже на името на датотеката поврзано со датотеката што се извршува. Низата на покажувачи мора да биде прекината со покажувач NULL .

Функцијата exec ја специфицира и околината на извршениот процес, следејќи го покажувачот NULL кој ја прекинува листата на аргументи во листата на параметри или покажувачот до arg array со дополнителен параметар. Овој дополнителен параметар е низа на покажувачи за низи со низи и мора да се прекине со покажувач NULL . Другите функции ја земаат животната средина за новата процесна слика од надворешната променлива околина во тековниот процес.

Некои од овие функции имаат посебна семантика.

Функциите execlp и execvp ќе ги дуплираат дејствата на школка при барање на извршна датотека ако наведеното име на датотека не содржи знак за коса црта (/). Патеката за пребарување е патеката одредена во средина со променливата PATH . Ако оваа променлива не е наведена, се користи стандардната патека ``: / bin: / usr / bin ''. Покрај тоа, одредени грешки се третираат посебно.

Ако дозволата е одбиена за датотека (обидот да се изврши вратениот EACCES ), овие функции ќе продолжат да го бараат остатокот од патеката за пребарување. Меѓутоа, ако не се најде друга датотека, тие ќе се вратат со глобалната променлива errno поставена на EACCES .

Ако насловот на датотеката не е препознаен (обидот да се изврши вратениот ENOEXEC ), овие функции ќе ја извршат школка со патеката на датотеката како прв аргумент. (Ако овој обид не успее, не се врши понатамошно пребарување.)

Враќање Вредност на функциите exec

Ако некој од функциите exec се врати, ќе се појави грешка. Вредноста на враќањето е -1, а глобалната променлива errno ќе биде поставена за да ја покаже грешката.