Angexec Ang pamilya ng mga function ay pumapalit sa kasalukuyang proseso ng imahe gamit ang isang bagong proseso ng imahe. Ang mga function na inilarawan dito ay front-ends para sa functionexecve(2).
Ang unang argument para sa mga function na ito ay ang pathname ng isang file na kung saan ay naisakatuparan.
Ang const char * arg at kasunod na ellipses saexecl, execlp, atkumilos Ang mga pag-andar ay maaaring iisipin bilang arg0 , arg1 , …, argn . Sama-sama nilalarawan nila ang isang listahan ng isa o higit pang mga payo sa mga string na tinatapos na walang bisa na kumakatawan sa listahan ng argumento na magagamit sa programang naisakatuparan. Ang unang argumento, sa pamamagitan ng kombensyon, ay dapat tumutukoy sa pangalan ng file na nauugnay sa file na isinagawa. Ang listahan ng mga argumento dapat aalisin ng isangWALA pointer.
Angexecv atexecvp Ang mga pag-andar ay nagbibigay ng isang array ng mga payo sa null-terminated strings na kumakatawan sa listahan ng argumento na magagamit sa bagong programa. Ang unang argumento, sa pamamagitan ng kombensyon, ay dapat tumutukoy sa pangalan ng file na nauugnay sa file na isinagawa. Ang hanay ng mga payo dapat aalisin ng isangWALA pointer.
Angkumilos tinutukoy din ang pag-andar sa kapaligiran ng proseso na isinagawa sa pamamagitan ng pagsunod saWALApointer na tinatapos ang listahan ng mga argumento sa listahan ng parameter o ang pointer sa argv array na may dagdag na parameter. Ang karagdagang parameter na ito ay isang hanay ng mga payo sa null-terminated strings at dapat aalisin ng isangWALA pointer. Ang iba pang mga function ay tumatagal ng kapaligiran para sa bagong proseso ng imahe mula sa panlabas na variable kapaligiran sa kasalukuyang proseso.
Ang ilan sa mga function na ito ay may espesyal na semantika.
Ang mga functionexeclp atexecvp ay doblehin ang mga pagkilos ng shell sa paghahanap para sa isang maipapatupad na file kung ang tinukoy na pangalan ng file ay hindi naglalaman ng isang slash (/) na character. Ang path ng paghahanap ay ang landas na tinukoy sa kapaligiran ngPATH variable. Kung hindi tinukoy ang variable na ito, ang default path na ``: / bin: / usr / bin '' ay ginagamit. Bilang karagdagan, ang ilang mga error ay espesyal na itinuturing.
Kung pahintulot ay tinanggihan para sa isang file (ang tinangkangexecve bumalikEACCES), ang mga function na ito ay patuloy na maghanap sa natitirang bahagi ng path ng paghahanap. Kung walang iba pang mga file ay natagpuan, gayunpaman, sila ay bumalik sa global variable errno itakda saEACCES.
Kung ang header ng isang file ay hindi kinikilala (ang tinangkangexecve bumalikENOEXEC), gagawin ng mga function na ito ang shell na may landas ng file bilang unang argumento nito. (Kung nabigo ang pagtatangka na ito, walang karagdagang paghahanap ay tapos na.)
Ibalik ang Halaga
Kung mayroon man saexec Ang mga pag-andar ay nagbabalik, may naganap na error. Ang halaga ng pagbalik ay -1, at ang pandaigdigang variable errno ay itatakda upang ipahiwatig ang error.
Mahalaga: Gamitin ang lalaki command ( % lalaki ) upang makita kung paano ginagamit ang utos sa iyong partikular na computer.
Pangalan
execl, execlp, execle, execv, execvp - magsagawa ng isang file
Buod
# isama extern char ** environ; int execl (const char * landas , const char * arg , …); int execlp (const char * file , const char * arg , …); int execle (const char * landas , const char * arg , …, char * const envp ); int execv (const char * landas , char * const argv ); int execvp (const char * file , char * const argv );