Lue Linux Command - execl

Nimi: execl, execlp, execle, execv, execvp - tiedostojen suorittaminen

tiivistelmä

#include

extern char ** ympäristö;

int execl (const char * polku , const char * arg , ...);
int execlp (const char * -tiedosto , const char * arg , ...);
int execle (const char * polku , const char * arg , ..., char * const envp []);
int execv (const char * polku , char * const argv []);
int execvp (const char * -tiedosto , char * const argv []);

Kuvaus

Toimintojen exec- perhe korvaa nykyisen prosessikuvan uudella prosessikuvalla . Tässä käsikirjassa kuvatut toiminnot ovat etupaneeleja toiminnolle execve (2). Näiden toimintojen alustava argumentti on suoritettavan tiedoston polku.

Tällöin const char * arg ja sen jälkeiset ellipsit execl- , execlp- ja execle- funktioissa voidaan ajatella arg0 , arg1 , ..., argn . Yhdessä he kuvaavat luettelon yhdestä tai useammasta osoittimesta nollautuneisiin merkkijonoihin, jotka edustavat suoritettavan ohjelman käytettävissä olevaa argumenttiluetteloa. Ensimmäinen argumentti, yleissopimuksessa, olisi osoitettava tiedostoon, joka liittyy suoritettavaan tiedostoon . Argumenttien luettelo on lopetettava NULL- osoittimella.

Execv- ja execvp- toiminnot tarjoavat joukon osoittimia nollaterminaaleihin, jotka edustavat uuden ohjelman käytettävissä olevaa argumenttiluetteloa. Ensimmäinen argumentti, yleissopimuksessa, olisi osoitettava tiedostoon, joka liittyy suoritettavaan tiedostoon. Osoittimien ryhmä on lopetettava NULL- osoittimella.

Execle- toiminto määrittää myös suoritettavan prosessin ympäristön seuraamalla NULL- osoittinta, joka lopettaa parametrien luettelon argumenttien luettelon tai argv-taulukon osoittimen lisäparametrilla. Tämä lisäparametri on joukko osoittimia nollaterminaalisiin merkkijonoihin, ja se on lopetettava NULL- osoittimella. Muut toiminnot ottavat ympäristöön uuden prosessikuvan ulkoisesta muuttujaympäristöstä nykyisessä prosessissa.

Joillakin näistä toiminnoista on erityinen semantiikka.

Funktion execlp ja execvp kopioivat kuoren toiminnot etsittäessä suoritettavaa tiedostoa, jos määritetyssä tiedostonimessä ei ole slash (/) -merkkiä. Hakupolku on PATH- muuttujan ympäristössä määritelty polku. Jos tätä muuttujaa ei ole määritetty, käytetään oletuspolkua ``: / bin: / usr / bin ''. Lisäksi tiettyjä virheitä käsitellään erityisesti.

Jos tiedostolle ei myönnetä lupaa (yrittäjä suoritti palautuksen EACCES ), nämä toiminnot jatkavat etsimistä muussa hakupolussa. Jos mikään muu tiedosto ei löydy, ne palaavat kuitenkin EACCES- asetuksella asetettuun globaaliin muuttujaan errno .

Jos tiedoston otsikkoa ei tunnisteta (yritetty exece palauttaa ENOEXECin ), nämä toiminnot suorittavat kuoren tiedoston polulla sen ensimmäisen argumenttina. (Jos tämä yritys epäonnistuu, etsintä ei enää suoriteta.)

Palautusarvo

Jos jokin exec- toiminnoista palautuu, on tapahtunut virhe. Paluuarvo on -1, ja globaalin muuttujan errno asetetaan ilmaisemaan virhe.