Leer die Linux Command - execl

Naam: execl, execlp, execle, execv, execvp - voer 'n lêer uit

opsomming

#include

eksterne char ** environ;

int execl (const char * pad , const char * arg , ...);
int execlp (const char * lêer , const char * arg , ...);
int execle (const char * pad , const char * arg , ..., char * const envp []);
int execv (const char * pad , char * const argv []);
int execvp (const char * lêer , char * const argv []);

beskrywing

Die exec- familie van funksies vervang die huidige prosesbeeld met 'n nuwe prosesbeeld . Die funksies wat in hierdie handleiding beskryf word, is die voorpunte vir die funksie wat uitgevoer word (2). Die aanvanklike argument vir hierdie funksies is die padnaam van 'n lêer wat uitgevoer moet word.

Die const char * arg en daaropvolgende ellipses in die execl , execlp en execle funksies kan beskou word as arg0 , arg1 , ..., argn . Saam beskryf hulle 'n lys van een of meer punte na nul-beëindigde snare wat die argumentlys vir die uitvoerende program verteenwoordig. Die eerste argument, volgens konvensie, moet dui op die lêernaam wat geassosieer word met die lêer wat uitgevoer word. Die lys van argumente moet beëindig word deur 'n NULL wyser.

Die execv en execvp funksies bied 'n verskeidenheid van wysers aan nul-beëindigde snare wat die argumentlys vir die nuwe program verteenwoordig. Die eerste argument, volgens konvensie, moet dui op die lêernaam wat geassosieer word met die lêer wat uitgevoer word. Die skikking van wysers moet deur 'n NULL- wyser beëindig word.

Die execle- funksie spesifiseer ook die omgewing van die uitgevoerde proses deur die NULL- wyser te volg wat die lys van argumente in die parameterlys of die wyser na die argv-skikking beëindig met 'n bykomende parameter. Hierdie bykomende parameter is 'n verskeidenheid wenke aan nul-beëindigde snare en moet beëindig word deur 'n NULL- wyser. Die ander funksies neem die omgewing vir die nuwe prosesbeeld van die eksterne veranderlike omgewings in die huidige proses.

Sommige van hierdie funksies het spesiale semantiek.

Die funksies execlp en execvp dupliseer die aksies van die dop in die soektog na 'n uitvoerbare lêer as die gespesifiseerde lêernaam nie 'n streep (/) karakter bevat nie. Die soekpad is die pad wat in die omgewing gespesifiseer word deur die PATH- veranderlike. As hierdie veranderlike nie gespesifiseer is nie, word die standaardpad ``: / bin: / usr / bin '' gebruik. Daarbenewens word sekere foute spesiaal behandel.

As toestemming geweier word vir 'n lêer (die poging om EACCES terug te voer ), sal hierdie funksies voortgaan om die res van die soektog te soek. As daar egter geen ander lêer gevind word nie, sal hulle terugkeer met die globale veranderlike errno wat ingestel is op EACCES .

As die kop van 'n lêer nie herken word nie (die poging om uit te voer ENOEXEC ), sal hierdie funksies die dop met die pad van die lêer as eerste argument uitvoer. (As hierdie poging misluk, word geen verdere soektog gedoen nie.)

Retourwaarde

As enige van die exec funksies terugkom, sal daar 'n fout wees. Die terugkeerwaarde is -1, en die globale veranderlike errno sal ingestel word om die fout aan te dui.