Linux / UNIX Kòmandman: execvp

Non

execl, execlp, egzekite, execv, execvp - egzekite yon dosye

Rezime

#Enkli

extern char ** anviwon;

ent execl (const char * chemen , const char * arg , ...);
Inteclp ( dosye * dosye *, konst gre * arg , ...);
Int ègzekutabl (const char * chemen , const char * arg , ..., char * konst envp []);
Int execv (const char * chemen , char * const argv []);
Int execvp (const char * dosye , char * const argv []);

Apèsi sou lekòl la nan lòd la

Fanmi an ekzekitif nan fonksyon ranplase imaj la pwosesis aktyèl ak yon imaj pwosesis nouvo. Fonksyon yo dekri isit la yo se devan-fini pou fonksyon an egzekite (2).

Premye agiman an pou fonksyon sa yo se chemen an nan yon dosye ki se yo dwe egzekite.

Konstasyon an karstik * agi ak ellipses ki vin apre nan èsklok yo , execlp , ak ègzekutabl fonksyon yo ka te panse de kòm arg0 , arg1 , ..., argn . Ansanm, yo dekri yon lis de youn oswa plizyè endikasyon nan strings nil-sispann ki reprezante lis la agiman ki disponib nan pwogram nan egzekite. Agiman an premye, pa konvansyon, yo ta dwe lonje dwèt sou non an dosye ki asosye ak dosye a ke yo te egzekite. Lis la nan agiman yo dwe sispann pa yon konsèy NULL .

Fonksyon yo execv ak execvp bay yon etalaj de endikasyon nan nil-sispann strings ki reprezante lis la agiman disponib nan pwogram nan nouvo. Agiman an premye, pa konvansyon, yo ta dwe lonje dwèt sou non an dosye ki asosye ak dosye a ke yo te egzekite. Yo dwe mete fenèt endikasyon pou endike yon konsèy NULL .

Fonksyon an egzekite tou espesifye anviwònman an nan pwosesis la egzekite pa swiv konsèy la NULL ki mete fen lis la nan agiman nan lis la paramèt oswa konsèy la nan etalaj la argv ak yon paramèt adisyonèl. Sa a paramèt adisyonèl se yon etalaj de endikasyon nan nil-sispann strings epi yo dwe sispann pa yon konsèy NULL . Fonksyon yo lòt pran anviwònman an pou imaj la nouvo pwosesis soti nan anviwònman an anviwònman varyab nan pwosesis aktyèl la.

Kèk nan fonksyon sa yo gen semantik espesyal.

Fonksyon yo execlp ak execvp pral kopi aksyon yo nan koki an nan pou chèche yon dosye ègzèkutabl si non an dosye espesifik pa gen yon karaktè koupe (/). Chemen rechèch la se chemen ki espesifye nan anviwònman an pa varyab PATH . Si varyab sa a pa espesifye, chemen an default ``: / bin: / usr / bin '' yo itilize. Anplis de sa, erè sèten yo trete espesyalman.

Si pèmisyon yo refize pou yon dosye (tantativ la te eseye tounen EACCES ), fonksyon sa yo ap kontinye chèche rès la nan chemen rechèch la. Si pa gen okenn lòt dosye yo te jwenn, sepandan, yo pral retounen ak erè a varyab mondyal mete nan EACCES .

Si header nan yon dosye pa rekonèt ( egzekite nan eseye te retounen ENOEXEC ), fonksyon sa yo ap egzekite koki a ak chemen an nan dosye a kòm agiman premye li yo. (Si tantativ sa a echwe, pa gen okenn plis rechèch fè.)

Valè valè

Si nenpòt nan fonksyon yo ekzekitif retounen, yo pral yon erè ki te fèt. Valè a retounen se -1, epi yo pral varyab mondyal yo pral mete yo endike erè a.

Enpòtan: Sèvi ak kòmandman an moun ( moun ) yo wè ki jan yon lòd yo itilize sou òdinatè patikilye ou.