Več o ukazu Linux - execv

execl, execlp, execle, execv, execvp - izvedite datoteko

Povzetek

#ključite

extern char ** environ;

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

Opis funkcij exec

Družina funkcij exec nadomešča trenutno sliko procesa z novo procesno sliko. Funkcije, opisane v tej strani priročnika, so prednji strani za funkcijo execve (2). (Za podrobnejše informacije o zamenjavi trenutnega postopka si oglejte priročnik za izluščitev .)

Začetni argument za te funkcije je ime datoteke, ki naj bi bila izvedena.

Pretvornik char * arg in poznejše elipse v funkcijah execl , execlp in execle se lahko obravnavajo kot arg0 , arg1 , ..., argn . Skupaj opisujejo seznam enega ali več kazalcev na ničelne terminale, ki predstavljajo seznam argumentov, ki je na voljo izvedenemu programu. Prvi argument, po dogovoru, bi moral kazati na ime datoteke, povezane z datoteko, ki se izvaja. Seznam argumentov mora prekiniti kazalec NULL .

Funkcije execv in execvp zagotavljajo niz kazalcev na ničelne terminale, ki predstavljajo seznam argumentov, ki je na voljo novemu programu. Prvi argument, po dogovoru, bi moral kazati na ime datoteke, povezane z datoteko, ki se izvaja. Množico kazalcev se mora zaključiti s kazalcem NULL .

Funkcija execle določa tudi okolje izvedenega procesa tako, da sledi kazalcu NULL, ki zaključi seznam argumentov v seznamu parametrov ali kazalec na array array z dodatnim parametrom. Ta dodatni parameter je niz kazalcev na ničelne terminale in jih mora prekiniti kazalec NULL . Druge funkcije vzamejo okolje za novo procesno sliko iz zunanje spremenljivke v trenutnem procesu.

Nekatere od teh funkcij imajo posebno semantiko.

Funkcije execlp in execvp bodo podvajale dejanja lupine pri iskanju izvedljive datoteke, če podano ime datoteke ne vsebuje znaka poševnice (/). Pot iskanja je pot, ki jo v okolju določa spremenljivka PATH . Če ta spremenljivka ni podana, se uporabi privzeta pot ``: / bin: / usr / bin ''. Poleg tega se nekatere napake obravnavajo posebej.

Če je dovoljenje za datoteko zavrnjeno (poskus izvršitve vrnjenega EACCES-a ), bodo te funkcije nadaljevale iskanje preostale poti iskanja. Če ne najdete nobene druge datoteke, se bodo vrnile s svetovno spremenljivko errno nastavljeno na EACCES .

Če glava datoteke ni prepoznana (poskus izvršitve vrnil ENOEXEC ), bodo te funkcije izvršile ukazno lupino s potjo datoteke kot njen prvi argument. (Če ta poskus ne uspe, ni nadaljnjega iskanja.)

Povratna vrednost funkcij exec

Če katera od funkcij exec vrne, se bo pojavila napaka. Povratna vrednost je -1, svetovna spremenljivka errno pa bo nastavljena tako, da bo označila napako.