Foghlaim an Ordú Linux - execv

execl, execlp, execle, execv, execvp - comhad a fhorghníomhú

Achoimre

#include

seol char ** timpeallachta;

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

Cur síos ar Fheidhmeanna exec

Cuireann an teaghlach exec feidhmeanna in ionad an íomhá phróisis reatha le híomhá próiseas nua. Is iad na feidhmeanna a ndéantar cur síos orthu sa leathanach lámhleabhar seo deireadh tosaigh don fheidhm execve (2). (Féach ar an leathanach láimhe le haghaidh faisnéis mhionsonraithe maidir le hathsholáthar an phróisis reatha.)

Is é an argóint tosaigh le haghaidh na bhfeidhmeanna seo ná ainm na comhad atá le cur i gcrích.

Is féidir argóint a dhéanamh ar argóint char * arg agus ellipses ina dhiaidh sin sna feidhmeanna execl , execlp , agus execle mar arg0 , arg1 , ..., argn . Leagann siad le chéile liosta de thorthaí amháin nó níos mó ar teaghráin neamhtheoranta a léiríonn an liosta argóint atá ar fáil don chlár forghníomhaithe. Ba cheart don chéad argóint, de réir coinbhinsiún, an t-ainm comhaid a bhaineann leis an gcomhad a fhorghníomhú a chur in iúl. Caithfidh pointeoir NULL an liosta argóintí a fhoirceannadh.

Soláthraíonn na feidhmeanna execv agus execvp sraith cinnirí le teaghráin neamhtheoranta a léiríonn an liosta argóint atá ar fáil don chlár nua. Ba cheart don chéad argóint, de réir coinbhinsiún, an t-ainm comhaid a bhaineann leis an gcomhad a fhorghníomhú a chur in iúl. Caithfidh pointeoir NULL deireadh a chur le sraith na n-airdí.

Sonraíonn an fheidhm execle timpeallacht an phróisis fhorghníomhaithe tríd an pointeoir NULL a leanas a chríochnaíonn liosta na n-argóintí sa liosta paraiméadar nó an pointeoir don eagra argv le paraiméadar breise. Is éard atá sa pharaiméadar breise seo sraith de láithreoirí ar teaghráin neamhtheoranta agus ní mór punntóir NULL a fhoirceannadh. Tógann na feidhmeanna eile an timpeallacht le haghaidh íomhá an phróisis nua ón timpeallacht athróg seachtrach sa phróiseas reatha.

Tá semantics speisialta ag cuid de na feidhmeanna seo.

Déanfaidh na feidhmeanna execlp and execvp gníomhartha an bhlaosc a dhúbailt agus iad ag cuardach comhad inrite mura bhfuil carachtar slais (/) sa ainm comhad sonraithe. Is é an bealach cuardaigh an bealach atá sonraithe sa timpeallacht ag an athróg PATH . Mura bhfuil an t-athróg seo sonraithe, úsáidtear an bealach réamhshocraithe ``: / bin: / usr / bin ''. Ina theannta sin, déileálfar le hearráidí áirithe go speisialta.

Má dhiúltaítear cead le haghaidh comhad (iarr an t- iarratas ar EACCES ar ais), leanfaidh na feidhmeanna seo ag cuardach an chuid eile den chosán cuardaigh. Mura bhfuarthas aon chomhad eile, áfach, fillefidh siad ar ais leis an tsraith athraitheach domhanda atá leagtha síos ar EACCES .

Mura n-aithnítear ceannteideal comhad (déanfar an ENOEXEC a d'fhill an t- iarratas ar ais), cuirfidh na feidhmeanna seo an bhlaosc i gcrích le cosán an chomhaid mar a chéad argóint. (Má theipeann ar an iarracht seo, ní dhéantar aon chuardach eile.)

Luach ar ais ar Fheidhmeanna Exec

thosaíonn aon cheann de na feidhmeanna exec , beidh earráid déanta. Is é -1 an luach fillte, agus socrófar an t- athróg domhanda errno chun an earráid a léiriú.