Linux / Ture Unix: execvp

Ingoa

execl, execlp, execle, execv, execvp - mahi i te kōnae

Whakamutunga

#include

taiao waho ** tata;

int execl (const char * ara , const char * arg , ...);
int execlp (const char * file , const char * arg , ...);
Intecle (const char * path , const char * arg , ..., char * const envp []);
int execv (const char * ara , char * const argv []);
int execvp (const char * file , char * const argv []);

Tuhinga o te Whakaaetanga

Ko te whanau whakahaere o nga mahi e whakakapi ana i te mahinga tukanga o teianei me te ahua o te tukanga hou. Ko nga mahi e whakaaturia ana i konei ko nga pito-mua mo te mahi mahi (2).

Ko te tautohe tuatahi mo enei mahi ko te ingoa tohu o te kōnae e tika ana kia mahia.

Ka taea te whakaaro i te waahi o te kaari me nga ellipses i muri mai i te mahi , te kaitohutohu , me nga mahi whakaeke hei arg0 , arg1 , ..., argn . Ka tuhia e raua tetahi rarangi o te kotahi neke atu ranei o nga tohu ki nga aho kore-mutunga e tohu ana i te rarangi whakapae e wātea ana ki te papatono kua mahia. Ko te whakapae tuatahi, na te tikanga, me tohu ki te ingoa kōnae e hono ana ki te kōnae e tukuna ana. Ko te rarangi o nga tautohetohe me whakamutu e te kaiwhakahaere NULL .

Ko nga mahi execv me execvp e whakarato ana i nga huinga ki nga aho e kore e tutukihia e whakaatu ana i te rarangi whakapae e wātea ana ki te papatono hou. Ko te whakapae tuatahi, na te tikanga, me tohu ki te ingoa kōnae e hono ana ki te kōnae e tukuna ana. Me whakakore te huinga o nga tohu ki te kaiwhakahaere NULL .

Ka tohu hoki te mahinga o waho i te taiao o te tukanga i tukuna ma te whai i te kaitohu NULL e mutu ana i te rarangi o nga tautohetohe kei te rarangi taapiri, te tohuhanga ranei ki te waahanga argv me tetahi taapiri atu. Ko tenei taapiri atu ko te huinga o nga tohu ki nga aho e kore e tutuki, me te whakaoti i te kaitohu NULL . Ko era atu mahi ka tango i te taiao mo te ahua tukanga hou mai i te taiao rererangi o waho i te tukanga o naianei.

Ko etahi o enei mahi he turoro motuhake.

Ka mahi nga mahi a te kaiwhakahaere me te execvp ki nga mahi o te anga i roto i te rapu i tetahi kōnae ka taea te kaore i te ingoa o te ingoa kōnae kua tohua (/). Ko te ara rapu ko te ara kua tautuhia ki te taiao e te taurangi PATH . Mena kaore i tautuhia tenei taurangi, ka whakamahia te ara taunoa '`: / bin: / usr / bin' '. I tua atu, he nui nga waahanga e tukuna ana.

Mena kua whakakorehia te whakaaetanga mo te kōnae (ka hoki mai te EACCES i te whakataunga ), ka haere tonu enei mahi ki te rapu i te toenga o te huarahi rapu. Mena kaore he atu kōnae e kitea, heoi, ka hoki mai me te errno ao huri ki te EACCES .

Mena kaore i te mohiohia te pane o te kōnae (ka whakahokia mai ENOEXEC te kaitohutohu ), ka mahi enei mahinga i te anga ki te ara o te kōnae hei whakapae tuatahi. (Ki te kore tenei ngana, kaore he waahanga e whai ake.)

Utu Whakahoki

Mena ka hoki mai tetahi o nga mahi whakahaere, ka puta he hapa. Ko te uara hokinga mai ko te -1, a ka whakaturia te errno ao huri ki te tohu i te hapa.

Mea nui: Whakamahia te whakahau tangata ( % tangata ) kia kite pehea e whakamahia ana he whakahau i runga i to rorohiko.