Koyi Dokar Linux - execl

Sunan: execl, execlp, execle, execv, execvp - aiwatar da fayil

Synopsis

#include

Extern char ** kusan;

int execl (const char * hanyar , const char * arg , ...);
int execlp (const char * file , const char * arg , ...);
(ex charter (const char * hanyar , const char * arg , ..., ca * const envp []);
int execv (const char * hanyar , char * const argv []);
int execvp (const char * file , char * const argv []);

Bayani

Ayyukan aikin aiwatarwa na maye gurbin samfurin tsari na yanzu tare da sabon tsari . Ayyukan da aka bayyana a cikin wannan littafin jagora sune ƙarshen aikin aikin (2). Tambayar farko ga wadannan ayyuka shine sunan sunan fayil ɗin wanda dole ne a kashe.

Ƙididdigin ca * arg da tsinkayen ellipses a cikin execl , execlp , da ayyuka na ƙwaƙwalwa za a iya ɗauka kamar arg0 , arg1 , ..., argn . Tare suna bayyana jerin ɗaya ko fiye da maƙalara zuwa ƙirar da aka ƙaddamar da ƙuƙwalwa waɗanda ke wakiltar jerin jayayya da aka samo don shirin kashewa. Amincewa ta farko, ta hanyar tarurruka, ya kamata a nuna sunan sunan fayil da aka haɗu da fayil din da aka kashe. Lissafin muhawarar dole ne a ƙare ta hanyar Maɓallin NULL .

Ayyukan execv da execvp suna samar da suturar maƙalara zuwa igiyoyi waɗanda aka ƙaddamar da ƙananan waɗanda ke wakiltar jerin jayayya da aka samu don sabon shirin. Amincewa ta farko, ta hanyar tarurruka, ya kamata a nuna sunan sunan fayil da aka haɗu da fayil din da aka kashe. Dole ne a ƙare jerin tsararraki ta hanyar maɓallin NULL .

Ayyukan ƙwaƙwalwar yana ƙayyade yanayi na aiwatar da aiwatarwa ta hanyar bin maɓallin NULL wanda ya ƙare jerin abubuwan muhawarar a cikin jerin jerin ko maɓallin zuwa tashar argv tare da ƙarin saiti. Ƙarin wannan ƙarin shine jerin tsararren rubutu zuwa ƙirar da aka ƙaddamar da ƙuƙwalwa kuma dole ne a ƙare ta hanyar maɓallin NULL . Sauran ayyuka suna ɗaukar yanayi don sabon tsari daga tsari daga muni na waje a cikin tsari na yanzu.

Wasu daga cikin waɗannan ayyuka suna da mahimmanci na musamman.

Ayyuka na execlpp da execvp za su biye da ayyukan da harsashi ke nema don neman fayiloli wanda aka sanya shi idan sunan fayil ɗin da aka ƙayyade ba ya ƙunshi hali na slash (/). Hanyar bincike shine hanyar da aka kayyade a cikin yanayin ta hanyar PATH . Idan ba'a ƙayyade wannan madaidaici ba, ana amfani da hanyar da aka fi dacewa da '`: / bin: / usr / bin' '. Bugu da ƙari, wasu kurakurai suna kula da musamman.

Idan an hana izni don fayil (yunkurin aiwatar da EACCES maidowa ), waɗannan ayyuka zasu ci gaba da binciken sauran hanyar binciken. Idan ba'a sami wata fayil ba, duk da haka, za su dawo tare da errno na duniya wanda aka saita zuwa EACCES .

Idan ba a yarda da rubutun fayil ba (yunkurin da aka dawo ENOEXEC ), wadannan ayyuka zasu aiwatar da harsashi tare da hanyar fayil ɗin a matsayin hujja ta farko. (Idan wannan ƙoƙari ya kasa, ba a bincika ƙarin bincike ba.)

Sabuntawa Darajar

Idan wani daga cikin ayyukan da ya dawo ya dawo, kuskure zai faru. Ƙimar da take da ita shine -1, kuma za a saita ɓangaren ƙananan yanar gizo na errno don nuna kuskure.