Saznajte Linux Command - execv

execl, execlp, izvršiti, execv, execvp - izvršiti datoteku

Sinopsis

#include

extern char ** environ;

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

Opis izvršnih funkcija

Exec obitelj funkcija zamjenjuje trenutnu procesnu sliku novom procesnom slikom. Funkcije opisane u ovoj priručnoj stranici su front-ends za funkciju execve (2). (Pogledajte priručnu stranicu za izvršavanje detaljnih informacija o zamjeni trenutnog postupka.)

Početni argument za ove funkcije je putanje datoteke datoteke koju treba izvršiti.

Konstrukt char * arg i naknadne elipse u execl , execlp i execle funkcijama mogu se smatrati arg0 , arg1 , ..., argn . Zajedno opisuju popis jednog ili više pokazivača na nul terminirane nizove koji predstavljaju argumentni popis koji je dostupan izvršenom programu. Prvi argument, prema konvenciji, trebao bi uputiti na naziv datoteke povezan s datotekom koja se izvršava. Popis argumenata mora biti prekinut NULL pokazivačem.

Execv i execvp funkcije pružaju niz uputa za null-terminated nizove koji predstavljaju popis argumenta dostupnih novom programu. Prvi argument, prema konvenciji, trebao bi uputiti na naziv datoteke povezan s datotekom koja se izvršava. Niz pokazivača mora biti prekinut NULL pokazivačem.

Funkcija izvršenja također određuje okolinu izvršenog procesa slijedeći NULL pokazivač koji završava popis argumenata na popisu parametara ili pokazivač na polje argv s dodatnim parametrom. Ovaj dodatni parametar je niz upućuje na null terminirane žice i mora biti prekinut pomoću NULL pokazivača. Druge funkcije uzimaju okoliš za novu procesnu sliku iz vanjske varijable okoline u trenutnom procesu.

Neke od tih funkcija imaju posebnu semantiku.

Funkcije execlp i execvp će duplicirati akcije ljuske u potrazi za izvršnom datotekom ako navedeni naziv datoteke ne sadrži znak (/). Put pretraživanja je put naveden u okruženju pomoću varijable PATH . Ako ova varijabla nije navedena, koristi se zadana staza ``: / bin: / usr / bin ''. Osim toga, određene pogreške posebno se tretiraju.

Ako je dopuštenje za datoteku odbijeno (pokušaj izvršenja vratio EACCES ), te će se funkcije nastaviti pretraživati ​​ostatak puta traženja. Ako se ne pronađe nijedna druga datoteka, međutim, oni će se vratiti s globalnom varijablom errno postavljenom na EACCES .

Ako zaglavlje datoteke nije prepoznato (pokušaj izvršenja vraćen je ENOEXEC ), te će funkcije izvršiti ljusku s putom datoteke kao svoj prvi argument. (Ako taj pokušaj ne uspije, nema daljnjih pretraživanja.)

Povratna vrijednost izvršnih funkcija

Ako se bilo koja od izvršnih funkcija vraća, doći će do pogreške. Povratna vrijednost je -1, a globalna varijabla errno će biti postavljena na označavanje pogreške.