Skip to main content

Viskas apie Linux / Unix komandą: execvp

Anonim

Theexec funkcijų šeima pakeičia dabartinį proceso vaizdą naudojant naują proceso vaizdą. Čia aprašytos funkcijos yra funkcijos priekiniai galaiexecve(2).

Pirminis šių funkcijų argumentas yra failo, kuris turi būti įvykdytas, kelias.

The const char * arg ir vėlesnės elipsėsexecl, execlp, irexecle funkcijos gali būti laikomos kaip arg0 , arg1 , …, argn . Kartu jie apibūdina vieno ar kelių rodyklių, kurių pabaigoje nėra nulinių taškų, sąrašą, kuris pateikia vykdomai programai taikomą argumentų sąrašą. Pirmasis argumentas, pagal susitarimą, turėtų nurodyti bylos pavadinimą, susietą su vykdomu failu. Argumentų sąrašas privalo turi būti nutrauktas aNULL rodyklė

Theexecv irexecvp funkcijos pateikia nuorodų masyvą nulinės baigties styginiams, kurie rodo naujos programos prieigą prie argumentų sąrašo. Pirmasis argumentas, pagal susitarimą, turėtų nurodyti bylos pavadinimą, susietą su vykdomu failu. Indeksų masyvas privalo turi būti nutrauktas aNULL rodyklė

Theexecle funkcija taip pat nurodo įvykdyto proceso aplinką, vykdydamaNULLrodiklis, kuris nutraukia argumentų sąrašą parametrų sąraše arba rodyklę į argv masyvą su papildomu parametru. Šis papildomas parametras yra nurodomųjų eilučių ir nulinės baigties eilučių masyvas privalo turi būti nutrauktas aNULL rodyklė Kitos funkcijos užima naują proceso vaizdą iš išorinio kintamojo aplinka dabartiniame procese.

Kai kurios iš šių funkcijų turi specialią semantiką.

Funkcijosexeclp irexecvp bus dubliuoti apvalkalo veiksmus ieškant vykdomojo failo, jei nurodytame failo pavadinime nėra brūkšnelio (/) simbolio. Paieškos kelias yra kelias, nurodytas aplinkojePATH kintamasis. Jei šis kintamasis nenurodytas, naudojamas numatytasis maršrutas ``: / bin: / usr / bin ''. Be to, tam tikros klaidos yra traktuojamos specialiai.

Jei failui atsisakoma leisti (bandymasexecve grįžoEACCES), šios funkcijos toliau ieškos likusios paieškos kelio. Tačiau, jei nė vienas kitas failas nerastas, jie grįš kartu su globaliniu kintamuoju errno nustatytas įEACCES.

Jei failo antraštė nėra atpažinta (bandomaexecve grįžoENOEXEC), šios funkcijos vykdys apvalkalą su failo keliu kaip savo pirmąjį argumentą. (Jei šis bandymas nepavyks, tolesnė paieška nebus atlikta.)

Grąžos vertė

Jei kuri nors išexec funkcijos grąžina, įvyko klaida. Grąžinimo reikšmė yra -1 ir globalus kintamasis errno bus nustatyta, kad būtų nurodyta klaida.

Svarbu: Naudoti vyras komanda ( % vyras ), kad pamatytumėte, kaip komanda naudojama jūsų konkrečiame kompiuteryje.

vardas

execl, execlp, execle, execv, execvp - paleisti failą

Anotacija

#include

extern char ** environ;

int execl (const char * kelias , const char * arg , …); int execlp (const char * failas , const char * arg , …); int execle (const char * kelias , const char * arg , …, char * const envp ); int execv (const char * kelias , char * const argv ); int execvp (const char * failas , char * const argv );