Dysgwch Reoliad Linux - execl

Enw: execl, execlp, execle, execv, execvp - gweithredu ffeil

Crynodeb

#include

allanol char ** amgylchedd;

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

Disgrifiad

Mae'r teulu exec o swyddogaethau yn disodli'r ddelwedd broses bresennol gyda delwedd broses newydd. Mae'r swyddogaethau a ddisgrifir yn y dudalen hon yn flaenllaw ar gyfer y swyddogaeth execve (2). Y ddadl gychwynnol ar gyfer y swyddogaethau hyn yw enw'r llwybr ffeil sydd i'w gyflawni.

Gellir meddwl bod y char * arg a ellipsau dilynol yn y execl , execlp , a swyddogaethau execle fel arg0 , arg1 , ..., argn . Gyda'i gilydd maent yn disgrifio rhestr o un neu ragor o awgrymiadau i llinynnau terfynol dwbl sy'n cynrychioli'r rhestr ddadleuon sydd ar gael i'r rhaglen a wneir. Dylai'r ddadl gyntaf, yn ôl confensiwn, nodi at yr enw ffeil sy'n gysylltiedig â'r ffeil sy'n cael ei weithredu. Rhaid i'r rhestr o ddadleuon gael ei derfynu gan bwyntydd NULL .

Mae'r swyddogaethau execv ac execvp yn darparu amrywiaeth o awgrymiadau i llinynnau terfynol di-rif sy'n cynrychioli'r rhestr ddadleuon sydd ar gael i'r rhaglen newydd. Dylai'r ddadl gyntaf, yn ôl confensiwn, nodi at yr enw ffeil sy'n gysylltiedig â'r ffeil sy'n cael ei weithredu. Rhaid i nifer o awgrymwyr gael ei derfynu gan bwyntydd NULL .

Mae'r swyddogaeth execle hefyd yn pennu amgylchedd y broses a weithredir trwy ddilyn y pwyntydd NULL sy'n terfynu'r rhestr o ddadleuon yn y rhestr paramedr neu'r pwyntydd i'r gronfa argv gyda pharamedr ychwanegol. Mae'r paramedr ychwanegol hwn yn gyfres o awgrymiadau i llinynnau wedi'u terfynu gan null a rhaid eu terfynu gan bwyntydd NULL . Mae'r swyddogaethau eraill yn cymryd yr amgylchedd ar gyfer y ddelwedd broses newydd o'r amgylchedd newidiol allanol yn y broses gyfredol.

Mae gan rai o'r swyddogaethau hyn semanteg arbennig.

Bydd y swyddogaethau execlp ac execvp yn dyblygu gweithredoedd y gragen wrth chwilio am ffeil gyflawnadwy os nad yw'r enw ffeil penodedig yn cynnwys cymeriad slash (/). Y llwybr chwilio yw'r llwybr a bennir yn yr amgylchedd gan y newidydd PATH . Os nad yw'r newidyn hwn wedi'i bennu, defnyddir y llwybr diofyn ``: / bin: / usr / bin ''. Yn ogystal, mae rhai gwallau yn cael eu trin yn arbennig.

Os gwrthodir caniatâd am ffeil (bydd yr ymgais a wnaethpwyd yn execve wedi dychwelyd EACCES ), bydd y swyddogaethau hyn yn parhau i chwilio am weddill y llwybr chwilio. Os na ddarganfyddir unrhyw ffeil arall, fodd bynnag, byddant yn dychwelyd gyda'r errno amrywiol sy'n cael ei osod i EACCES .

Os nad yw pennawd ffeil yn cael ei gydnabod (yr ymdrechwyd gan Execve ENOEXEC ), bydd y swyddogaethau hyn yn gweithredu'r gragen gyda llwybr y ffeil fel ei ddadl gyntaf. (Os yw'r ymgais hon yn methu, ni cheir chwiliad pellach.)

Gwerth Dychwelyd

Os bydd unrhyw un o'r swyddogaethau exec yn dychwelyd, bydd gwall wedi digwydd. Y gwerth dychwelyd yw -1, a bydd y newidiad errno byd-eang yn cael ei osod i nodi'r gwall.