Funda i-Linux Command-execv

execlp, execlp, execle, execv, execvp - phumeza ifayile

Isiqendu

# kuquka

extern char ** malunga;

int execl (const char * indlela , const char * arg , ...);
int execlp (i-const char * ifayile , i-const char * arg , ...);
int (i-const char * path , i-const char * arg , ..., i-char * const envp []);
int (i-const char * path , char * const argv []);
int execvp (i-const char * ifayile , i-char * const argv []);

Inkcazo yokusebenza Imisebenzi

Intsapho yemisebenzi yenze imisebenzi ithatha umfanekiso wenkqubo yangoku kunye nomfanekiso omtsha wenkqubo . Imisebenzi echazwe kwiphepha lencwadana yimihla yokugqibela yomsebenzi (2). (Jonga iphepha leencwadi ukuze uqhube ulwazi oluthe ngqo malunga nokutshintshwa kwenkqubo ekhoyo.)

Ingxabano yokuqala yale mi sebenzi yindlela yefayili eya kuqhutywa.

I- const char * arg kunye ne-ellipses ezalandela kwi- execl , execlp , kunye nemisebenzi yokusebenza ingacingwa nje nge- arg0 , arg1 , ..., argn . Bambisana bachaza uluhlu lwesinye okanye amanqaku amaninzi kwiimpawu ezipheliswe ngokungafaniyo ezimelela uluhlu lweengxabano ezifumanekayo kwinkqubo eyenziweyo. Ingxabano yokuqala, ngendibano, kufuneka ibhekiselele kwifayile yefayile ehambelana nefayili eyenziwa. Uluhlu lweengxabano kufuneka lunqunywe ngumbonisi we- NULL .

Imisebenzi yokwenza nokusebenza inikezela izicatshulwa ezicwangcisiweyo ezingenanto ezingagqibekanga ezibonisa uluhlu lweengxabano ezifumanekayo kwinkqubo entsha. Ingxabano yokuqala, ngendibano, kufuneka ibhekiselele kwifayile yefayile ehambelana nefayili eyenziwa. Uludwe lweengcaciso kufuneka lupheliswe ngumbonisi we- NULL .

Umsebenzi wokwenza umsebenzi uphinde uchaze ummandla wenkqubo eqhutywe ngokulandela umyalelo we- NULL ophelisa uluhlu lweengxabano kwiluhlu lweparimeter okanye i-pointer kwisigaba se-argv kunye neparameter eyongeziweyo. Le parameter eyongeziweyo yinkcazo yezicatshulwa kwizixhobo ezigqityiweyo ezingenanto kwaye kufuneka zipheliswe ngumbonisi we- NULL . Eminye imisebenzi ithatha imo-mhlaba kwindlela entsha yomfanekiso ukusuka kummandla ongaguqukiyo wangaphandle kwinkqubo yangoku.

Eminye yale mi sebenzi ineemfuno zeemfuno zeemfuno ezikhethekileyo.

Imisebenzi ye- execlp kunye ne- execvp iya kuphinda isenzo segobolondo ekukhangela iifayile ezisebenzayo ukuba igama lefayili elikhankanyiweyo lingenalo uhlamvu lwe -slash (/). Indlela yokukhangela yindlela echazwe kwimo engqongileyo. Ukuba le nguquko ayichazwanga, indlela ehleliweyo ``: / bin: / usr / bin '' isetyenziswa. Ukongezelela, iimpazamo ezithile ziphathwa ngokuthe ngqo.

Ukuba imvume ifunyenwe ifayile (ukuzama ukubuyisela i- EACCES ebuyisiwe ), le mi sebenzi iya kuqhubeka isesha yonke indlela yokukhangela. Ukuba akukho nanye ifayile ifumaneka, kunjalo, baya kubuya kunye ne-variable variable eyenziwa kwi- EACCES .

Ukuba intloko yefayili ayibonakali (ukuzama ukubuyisela i- ENOEXEC ebuyisiwe ), le mi sebenzi iya kwenza igobolondo kunye nomendo wefayili njengengxabano yokuqala. (Ukuba le nzame ihluleka, akukho kuphando olwenziwayo.)

Buyisela ixabiso leMisebenzi

Ukuba kukho nayiphi na imisebenzi yokubuyisela, kukho iphutha. Ixabiso lokubuyela li--1, kwaye i-variable errno yomhlaba iya kusekwa ukubonisa impazamo.