Aflați comanda Linux - execl

Nume: execl, execlp, execle, execv, execvp - executați un fișier

Rezumat

#include

extern char ** mediu;

int execl (const char * cale , const char * arg , ...);
int execlp (const char * fișier , const char * arg , ...);
int execle (const char * cale , const char * arg , ..., char * const envp []);
int execv (const char * cale , char * const argv []);
int execvp (const char * fișier , char * const argv []);

Descriere

Familia funcțiilor exec înlocuiește imaginea curentă a procesului cu o nouă imagine a procesului . Funcțiile descrise în această pagină de manual sunt funcții frontale pentru funcția execve (2). Argumentul inițial pentru aceste funcții este numele de cale al unui fișier care urmează să fie executat.

Caracterul const * arg și elipsele ulterioare în funcțiile execl , execlp și execle pot fi considerate ca arg0 , arg1 , ..., argn . Împreună descriu o listă cu unul sau mai mulți indicatori pentru șiruri cu null-terminate care reprezintă lista de argumente disponibile pentru programul executat. Primul argument, prin convenție, ar trebui să indice numele fișierului asociat fișierului care se execută. Lista argumentelor trebuie terminată printr-un pointer NULL .

Functiile execv si execvp furnizeaza o serie de pointeri la siruri de null-terminate care reprezinta lista de argumente disponibile pentru noul program. Primul argument, prin convenție, ar trebui să indice numele fișierului asociat fișierului care se execută. Setul de pointeri trebuie să fie terminat de un pointer NULL .

Funcția execle specifică și mediul procesului executat, urmând indicatorul NULL care termină lista argumentelor din lista de parametri sau indicatorul spre arta argv cu un parametru suplimentar. Acest parametru suplimentar este o serie de indicii pentru șiruri cu null-terminated și trebuie să fie terminat cu un pointer NULL . Celelalte funcții iau mediul pentru noua imagine de proces din mediul variabil extern în procesul curent.

Unele dintre aceste funcții au o semantică specială.

Funcțiile execlp și execvp vor duplica acțiunile shell-ului în căutarea unui fișier executabil dacă numele de fișier specificat nu conține un caracter slash (/). Calea de căutare este calea specificată în mediu de către variabila PATH . Dacă această variabilă nu este specificată, se folosește calea implicită ``: / bin: / usr / bin ''. În plus, anumite erori sunt tratate special.

Dacă permisiunea este refuzată pentru un fișier (încercarea de executare a returnat EACCES ), aceste funcții vor continua să caute restul căii de căutare. Dacă nu se găsește niciun alt fișier, acestea se vor întoarce cu errno variabilă globală setată la EACCES .

Dacă antetul unui fișier nu este recunoscut (operatorul încercat a returnat ENOEXEC ), aceste funcții vor executa shell-ul cu calea fișierului ca primul său argument. (Dacă această încercare nu reușește, nu se efectuează căutări.)

Valoare returnată

Dacă oricare dintre funcțiile execure revine, va apărea o eroare. Valoarea returnată este -1, iar variabila globală errno va fi setată pentru a indica eroarea.