názov
execl, execlp, execle, execv, execvp - spúšťať súbor
synopse
#include
externé char ** prostredie;
int execl (const char * cesta , const char * arg , ...);
int execlp (const char * súbor , const char * arg , ...);
int execle (const char * cesta , const char * arg , ..., char * const envp []);
int execv (const char * cesta , char * const argv []);
int execvp (const char * súbor , char * const argv []);
Prehľad príkazu
Rodina funkcií exec nahrádza aktuálny procesný obrázok novým procesným obrázkom. Tu popísané funkcie sú predné časti funkcií execve (2).
Počiatočným argumentom pre tieto funkcie je cesta k súboru, ktorý sa má spustiť.
Konštanta char * arg a následné elipsy vo funkciách execl , execlp a execle možno považovať za arg0 , arg1 , ..., argn . Spoločne opisujú zoznam jedného alebo viacerých ukazovateľov reťazcov s nulovou koncovkou, ktoré predstavujú zoznam argumentov dostupných vykonanému programu. Prvý argument podľa konvencie by mal poukazovať na názov súboru priradený spustenému súboru. Zoznam argumentov musí byť ukončený ukazovateľom NULL .
Funkcie execv a execvp poskytujú pole ukazovateľov reťazcom s nulovou koncovkou, ktoré predstavujú zoznam argumentov dostupný pre nový program. Prvý argument podľa konvencie by mal poukazovať na názov súboru priradený spustenému súboru. Pole ukazovateľov musí byť ukončené ukazovateľom NULL .
Funkcia execle tiež špecifikuje prostredie vykonaného procesu sledovaním ukazovateľa NULL, ktorý ukončí zoznam argumentov v zozname parametrov alebo ukazovateľ na pole argv s ďalším parametrom. Tento dodatočný parameter je pole ukazovateľov na reťazce ukončené nulou a musí byť ukončené ukazovateľom NULL . Ostatné funkcie zaberajú prostredie pre nový obraz procesu z vonkajšieho premenného prostredia v aktuálnom procese.
Niektoré z týchto funkcií majú špeciálnu sémantiku.
Funkcie execlp a execvp budú duplikovať akcie shellu pri hľadaní spustiteľného súboru, ak zadaný názov súboru neobsahuje znak lomítka (/). Vyhľadávacia cesta je cesta špecifikovaná v prostredí pomocou premennej PATH . Ak táto premenná nie je zadaná, použije sa predvolená cesta ``: / bin: / usr / bin ''. Navyše sa s určitými chybami zaobchádza špeciálne.
Ak je súbor zamietnutý (pokus o vykonanie vrátenia EACCES ), tieto funkcie budú pokračovať v hľadaní zvyšku cesty vyhľadávania. Ak sa však nenájde žiadny iný súbor, vrátia sa s globálnou premennou chyby nastavenou na EACCES .
Ak hlavička súboru nie je rozpoznaná (pokus o vykonanie vráti ENOEXEC ), tieto funkcie vykonajú shell s cestou súboru ako jeho prvý argument. (Ak sa tento pokus nepodarí, ďalšie vyhľadávanie sa nevykoná.)
Hodnota návratnosti
Ak sa vráti niektorá z funkcií exec , dôjde k chybe. Hodnota vrátenia je -1 a globálna premenná errno bude nastavená na označenie chyby.
Dôležité: Pomocou príkazu man ( % man ) môžete zistiť, ako sa príkaz používa vo vašom konkrétnom počítači.