Ionnsaich an Command Command - execv

execl, execlp, execle, execv, execvp - cuir a-steach faidhle

Synopsis

#include

muigh char ** environ;

int execl (const char * path , const char * arg , ...);
int execlp (const char * file , 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 * file , char * const argv []);

Tuairisgeul air Gnìomhan exec

Tha an teaghlach exec de dhleastanasan a 'gabhail àite an ìomhaigh pròiseas làithreach le ìomhaigh pròiseas ùr. Is e na gnìomhan a tha air am mìneachadh anns an duilleag-làimhe seo ceann-uidhe airson na dreuchd execve (2). (Faic an duilleag leabhran airson execve airson fiosrachadh mionaideach mu bhith a 'cur an àite a' phròiseis làithreach.)

Is e a 'chiad argamaid airson nan dreuchdan seo an t-ainm-slighe aig faidhle a thèid a chur gu bàs.

Faodar smaoineachadh air an const char * arg agus ellipses an dèidh sin anns na cleachdaidhean execl , execlp , agus execle mar arg0 , arg1 , ..., argn . Còmhla, tha iad a 'toirt cunntas air liosta de aon bheachd no barrachd gu teacsaichean crìochnachaidh null a tha a' riochdachadh liosta nan argamaidean a tha ri fhaighinn air a 'phrògram a chaidh a chur gu bàs. Bu chòir a 'chiad argamaid, le co-chòrdadh, iomradh a thoirt air an fhaidhle a tha co-cheangailte ris an fhaidhle a thèid a chur gu bàs. Feumar crìoch a chur air liosta nan argamaidean le puing NULL .

Tha na gnìomhan execv agus execvp a 'toirt sreath de chomharraidhean gu teinean crìochnachaidh null a tha a' riochdachadh liosta nan argamaidean a tha ri fhaighinn don phrògram ùr. Bu chòir a 'chiad argamaid, le co-chòrdadh, iomradh a thoirt air an fhaidhle a tha co-cheangailte ris an fhaidhle a thèid a chur gu bàs. Feumaidh an ìre de chomharraidhean a bhith air a chrìochnachadh le puing NULL .

Tha an gnìomh execle cuideachd a 'sònrachadh àrainneachd a' phròiseas a chaidh a chur gu bàs le bhith a 'leantainn a' phutain NULL a bhios a 'cur crìoch air liosta nan argamaidean anns a' chlàr pharaiméadair no am fear a tha a 'nochdadh ann an sreath argv le paramadair a bharrachd. Tha am paramadair seo a bharrachd na raon de chomharraidhean gu strìan crìochnachaidh null agus feumaidh e crìochnachadh le puing NULL . Bidh na gnìomhan eile a 'toirt na h-àrainneachd airson an ìomhaigh pròiseas ùr bhon atharrachadh caochlaideach àrainneachd anns a' phròiseas làithreach.

Tha cuid de na gnìomhan sin a 'toirt seachad seudan sònraichte.

Bidh na gnìomhan execlp agus execvp a 'dùblachadh gnìomhan an t-slige ann a bhith a' lorg faidhle in-ghabhalach mura h-eil slash (/) caractar anns an ainm faidhle ainmichte. Is e an t-slighe rannsachaidh an slighe a tha air a shònrachadh san àrainneachd leis an caochladair PATH . Mura tèid an caochladair seo a shònrachadh, thèid am frith-rathad bunaiteach ``: / bin: / usr / bin '' a chleachdadh. A bharrachd air an sin, thèid mearachdan sònraichte a làimhseachadh gu sònraichte.

Ma thèid cead a dhiùltadh airson faidhle (thill an t-oidhirp a rinn execve EACCES ), lean na gnìomhan sin a 'sgrùdadh a' chòrr den fhrith-luirg. Mura lorgar faidhle sam bith eile, ge-tà, tillidh iad leis an atharrachadh gnàthach cruinne a tha air a shuidheachadh gu EACCES .

Mura h-aithnichear ceann-sgrìobhaidh faidhle (thill an t-oidhirp air ENOEXEC a thionndadh le execve ), cuiridh na gnìomhan sin an slige air adhart le slighe an fhaidhle mar a 'chiad argamaid aige. (Ma dh'fhàillig an oidhirp seo, chan eil rannsachadh eile air a dhèanamh.)

Luach air ais de ghnìomhan exec

Ma tha gin de na gnìomhan exec a 'tilleadh, bidh mearachd air tachairt. Is e -1 an luach a th 'air ais, agus thèid an caochladair cruinne errno a shuidheachadh gus am mearachd a chomharrachadh.