Kawm Linux Command - execv

execl, execlp, execle, execv, execvp - execute ib cov ntaub ntawv

Synopsis

#include

extern char ** ib puag ncig;

int execl (const char * kev , const char * arg , ...);
int execlp (const char * cov ntaub ntawv , const char * arg , ...);
int execle (const char * kab , const char * arg , ..., char * const envp []);
int execv (const char * kab , char * const argv []);
int execvp (const char * ntaub ntawv , char * const argv []);

Kev piav qhia ntawm exec Functions

Exec neeg ua haujlwm ntawm cov neeg ua haujlwm tau hloov tus txheej txheem tam sim no nrog tus txheej txheem tshiab. Cov haujlwm uas tau piav nyob rau hauv phau ntawv qhia no yog hauv qab-hnub rau kev ua haujlwm (2). (Saib ntawm nplooj ntawv qhia kev rau kev coj kom paub meej txog cov kev hloov ntawm txoj haujlwm tam sim no.)

Cov lus sib cav rau cov kev khiav dej num no yog lub npe ntawm cov ntaub ntawv uas yog yuav tsum tau sau tseg.

Tus const char * arg thiab tom qab ellipses hauv execl , execlp , thiab execle functions yuav tsum xav txog li arg0 , arg1 , ..., argn . Ua ke lawv piav qhia cov npe ntawm ib los sis ntau tus taw tes rau cov hlua uas tsis tuaj yeem ua haujlwm uas sawv cev rau cov lus sib cav uas muaj rau cov txheej txheem tua. Thawj qhov sib cav, los ntawm lub rooj sib txoos, yuav tsum taw tes rau cov ntaub ntawv npe nrog rau cov ntaub ntawv ua tiav. Cov nqe lus ntawm cov lus sib cav yuav tsum tau txiav tawm los ntawm NULL pointer.

Tus execv thiab execvp functions muab ib qho ntawm cov pointers rau cov hlua uas tsis tuaj yeem ua haujlwm uas sawv cev rau cov lus sib cav uas muaj rau cov txheej xwm tshiab. Thawj qhov sib cav, los ntawm lub rooj sib txoos, yuav tsum taw tes rau cov ntaub ntawv npe nrog rau cov ntaub ntawv ua tiav. Cov array ntawm pointers yuav tsum tau txiav tawm los ntawm NULL pointer.

Execle Function kuj qhia tau hais txog kev ua haujlwm raws li nram qab no rau NULL pointer uas ua tiav cov lus sib cav ntawm daim ntawv teev lus parameter los yog tus pointer rau argv array nrog ib qho ntxiv parameter. No ntxiv parameter yog ib qho ntawm cov pointers rau cov hlua uas tsis raug kaw tseg thiab yuav tsum tau ua haujlwm los ntawm NULL pointer. Lwm yam kev khiav dej num ua rau ib puag ncig rau tus txheej txheem tshiab los ntawm lwm tus sab nraud thaj tsam hauv cov txheej txheem tam sim no.

Qee qhov kev khiav dej num no muaj cov ntsiab lus tshwj xeeb.

Lub zog execlp thiab execvp yuav duplicate cov kev ua ntawm plhaub hauv kev tshawb nrhiav rau cov ntaub ntawv executable yog hais tias lub npe teev npe lub npe tsis muaj ib tus lej (/) tus cwj pwm. Kev tshawb nrhiav txoj kab no yog txoj kev teev nyob rau ntawm ib cheeb tsam los ntawm PATH kuj sib txawv thiab. Yog hais tias qhov kev hloov no tsis tau muab teev, lub neej ntawd txoj kev '`: / bin: / usr / bin' 'siv. Tsis tas li ntawd, qee qhov uas tau raug kho tshwj xeeb.

Yog tias kev tso cai raug tsis pom zoo rau ib daim ntawv (qhov kev sim ua kom tau rov qab EACCES ), cov haujlwm no yuav ua txuas mus ntxiv rau txoj kev tshawb nrhiav. Yog tias tsis muaj lwm cov ntaub ntawv muaj, tab sis, lawv yuav rov qab los nrog lub ntiaj teb kuj txawv txav errno teem rau EACCES .

Yog hais tias tus header ntawm cov ntaub ntawv tsis raug lees paub (lub sim ua kom tiav rov qab ENOEXEC ), cov haujlwm no yuav ua rau lub plhaub nrog txoj kev ntawm cov ntaub ntawv ua nws qhov kev sib cav thawj zaug. (Yog tias qhov kev sim no tsis ua, tsis muaj kev tshawb nrhiav ntxiv lawm.)

Rov qab cov nuj nqis ntawm exec Functions

Yog hais tias ib qho ntawm exec functions, rov ua yuam kev. Tus nqi rov qab yog -1, thiab lub ntiaj teb no kuj tsis muaj tseeb errno yuav tsum tau muab los qhia qhov yuam kev.