Ismerje meg a Linux parancsot - execv

execl, execlp, execle, execv, execvp - fájl végrehajtása

Szinopszis

#include

extern char ** környezet;

int execl (const char * elérési út , const char * arg , ...);
int execlp (const char * fájl , const char * arg , ...);
int execle (const char * elérési út , const char * arg , ..., char * const envp []);
int execv (const char * elérési út , char * const argv []);
int execvp (const char * fájl , char * const argv []);

Exec függvények leírása

A végrehajtott függvénycsalád egy új folyamatképet felvált az aktuális folyamati képre. Az ebben a kézikönyvben leírt funkciók a funkció végrehajtásához (2) tartozó front-endek. (Az aktuális folyamat kicserélésével kapcsolatos részletes információkért lásd a végrehajtó kézikönyv oldalát.)

Ezeknek a függvényeknek az első argumentuma egy végrehajtható fájl elérési útvonala.

A const char * arg és az azt követő ellipszisek az execl , execlp és execle függvényekben arg0 , arg1 , ..., argn . Együtt írnak egy vagy több mutatót a null-terminált karakterláncokra, amelyek a végrehajtott program számára rendelkezésre álló argumentumlistát reprezentálják. Az első érv, konvenció szerint, meg kell mutatnia a végrehajtandó fájlhoz társított fájlnevet. Az argumentumok listáját NULL mutatóval kell befejezni.

Az execv és a execvp függvények null-terminált karakterláncokat mutatnak, amelyek az új program számára elérhető argumentumlistát képviselik. Az első érv, konvenció szerint, meg kell mutatnia a végrehajtandó fájlhoz társított fájlnevet. A mutatók tömbjét NULL mutatóval kell befejezni.

Az execle függvény a végrehajtott folyamat környezetét is megadja a NULL mutatóval, amely a paraméterlista argumentumainak listáját, vagy a mutatót az argv tömbhöz további paraméterrel végzi. Ez a kiegészítő paraméter egy null-terminált karakterláncú mutatók tömbje, amelyet egy NULL mutatóval kell befejezni. A többi funkció az aktuális folyamat környezeti változóját veszi fel az új folyamati kép környezete számára.

Néhány ilyen funkció speciális szemantikával rendelkezik.

Az execlp és execvp függvények megkísérlik a shell műveleteit egy végrehajtható fájl megkeresésében, ha a megadott fájlnév nem tartalmaz slash (/) karaktert. A keresési útvonal a PATH változó által a környezetben meghatározott útvonal. Ha ez a változó nincs megadva, akkor az alapértelmezett elérési útvonalat: / bin: / usr / bin. Ezenkívül bizonyos hibákat speciálisan kezelnek.

Ha egy fájl megtagadása engedélyezett (az EACCES visszaküldött kísérlet végrehajtott kísérlet), ezek a funkciók továbbra is keresik a keresési útvonal többi részét. Ha nem talál más fájlt, akkor visszatér az EACCES globális változónak.

Ha a fájl fejlécét nem ismeri fel (a kísérlet végrehajtotta az ENOEXEC-t ), ezek a függvények a fájl útvonala első parancsként végrehajtják a shell-ot. (Ha ez a kísérlet meghiúsul, további keresés nem történik meg.)

Exec függvények visszatérési értéke

Ha a végrehajtó függvények valamelyike ​​visszatér, hiba lépett fel. A visszatérési érték -1, és a globális változó errno lesz beállítva, hogy jelezze a hibát.