Saznajte Linux Command - execv

execl, execlp, execle, execv, execvp - izvrši datoteku

Sinopsis

#include

extern char ** environ;

int execl (const char * path , const char * arg , ...);
int execlp (const char * datoteka , const char * arg , ...);
int execle (const char * putanja , const char * arg , ..., char * const envp []);
int execv (const char * put , char * const argv []);
int execvp (const char * datoteka , char * const argv []);

Opis funkcija exec

Funkcija familije exec zamenjuje trenutnu sliku procesa pomoću nove slike procesa . Funkcije opisane u ovom priručniku su prednji kraj za funkciju execve (2). (Pogledajte stranicu sa uputstvima za izvlačenje za detaljne informacije o zameni trenutnog procesa.)

Inicijalan argument za ove funkcije je ime datoteke koje treba izvršiti.

Con char * arg i sledeće elipse u funkcijama execl , execlp i execle mogu se smatrati arg0 , arg1 , ..., argn . Zajedno opisuju listu jedne ili više pokazivača na nultom terminiranom nizu koji predstavljaju listu argumenata koji su dostupni izvršenom programu. Prvi argument, po dogovoru, treba da ukazuje na ime datoteke povezane sa izvršenom datotekom. Spisak argumenata mora biti prekinut pomoću pokazivača NULL .

Funkcije execv i execvp obezbeđuju niz pokazivača na nultom terminiranom nizu koji predstavlja listu argumenata koji su dostupni novom programu. Prvi argument, po dogovoru, treba da ukazuje na ime datoteke povezane sa izvršenom datotekom. Niz pokazivača mora biti prekinut pomoću pokazivača NULL .

Funkcija execle takođe određuje okruženje izvršenog procesa prateći NULL pokazivač koji prekida listu argumenata u listi parametara ili pokazivač na array argument sa dodatnim parametrom. Ovaj dodatni parametar predstavlja niz pokazivača za stringove sa nultom terminom i mora se prekinuti pomoću pokazivača NULL . Druge funkcije uzimaju okruženje za novu sliku procesa iz vanjskog okruženja promenljivih u tekućem procesu.

Neke od ovih funkcija imaju posebnu semantiku.

Funkcije execlp i execvp će duplirati akcije ljuske u potrazi za izvršljivom datotekom ako naznačeno ime datoteke ne sadrži znak za crtanje (/). Putanja pretrage je putanja koja je u okruženju određena promenljivom PATH . Ako ova varijabla nije specificirana, koristi se podrazumevana putanja ``: / bin: / usr / bin ''. Osim toga, određene greške se tretiraju posebno.

Ako se dozvola odbije za datoteku (pokušaj izvršenja vratio je EACCES ), ove funkcije će nastaviti pretraživati ​​ostatak trake za pretragu. Međutim, ako se ne pronađe nijedna druga datoteka, oni će se vratiti sa globalnom varijablom errno postavljenu na EACCES .

Ako zaglavlje datoteke nije prepoznato (pokušaj izvršavanja vratio ENOEXEC ), ove funkcije će izvršiti ljusku sa putanjom datoteke kao svoj prvi argument. (Ukoliko ovaj pokušaj ne uspe, neće se vršiti dalje pretraživanje.)

Povratna vrijednost funkcija exec

Ako se bilo koja od funkcija exec vrati, dođe do greške. Povratna vrednost je -1, a globalna varijabla errno će biti podešena da bi ukazala na grešku.