Uzziniet Linux komandu - execl

Nosaukums: execl, execlp, execle, execv, execvp - izpildīt failu

Kopsavilkums

#include

extern char ** environ;

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

Apraksts

Funkciju izpildes sērija aizstāj pašreizējo procesa attēlu ar jaunu procesa attēlu. Šajā rokasgrāmatā aprakstītās funkcijas ir funkcija execve (2) priekšpusē. Sākotnējais arguments par šīm funkcijām ir faila nosaukums, kas izpildāms.

Const char * arg un sekojošos ellipsus execl , execlp un execle funkcijās var uzskatīt par arg0 , arg1 , ..., argn . Kopā tie apraksta sarakstu ar vienu vai vairākiem norādēm uz null-izbeigtām virknes, kas pārstāv izpildīto programmu pieejamo argumentu sarakstu. Pirmajam argumentam, pēc vienošanās, jānorāda faila nosaukums, kas saistīts ar izpildāmo failu . Argumentu saraksts ir jāpārtrauc NULL rādītājam.

Izpildes un execvp funkcijas nodrošina virkni norādes uz null-izbeigtām virknēm, kas pārstāv jauno programmu pieejamo argumentu sarakstu. Pirmajam argumentam, pēc vienošanās, jānorāda faila nosaukums, kas saistīts ar izpildāmo failu. Norāžu masīvs ir jāpārtrauc NULL rādītājam.

Komandas funkcija arī nosaka izpildītā procesa vidi, sekojot NULL rādītājam, kas izbeidz argumentu sarakstu parametru sarakstā vai rādītāju ar argv masīvu ar papildu parametru. Šis papildu parametrs ir virkne norādes uz null-izbeigtām virkām, un tās jāpārtrauc NULL rādītājam. Pārējās funkcijas pašreizējā procesā ņem apkārtējo vidi jaunajam procesa attēlam no ārējā mainīgā environ .

Dažām no šīm funkcijām ir īpaša semantika.

Funkcijas execlp un execvp dublēs čaulas darbības, meklējot izpildāmo failu, ja norādītais faila nosaukums nesatur slīpsvītru (/) rakstzīmi. Meklēšanas ceļš ir ceļš, kas vidē norādīts ar mainīgā PATH . Ja šis mainīgais nav norādīts, tiek izmantots noklusējuma ceļš ``: / bin: / usr / bin ''. Turklāt atsevišķas kļūdas tiek apstrādātas speciāli.

Ja failam tiek atteikta atļauja (mēģinājums izpildīt atgrieztos EACCES ), šīs funkcijas turpinās meklēt pārējo meklēšanas ceļu. Ja neviens cits fails netiek atrasts, tomēr tie atgriezīsies ar globālo mainīgo errno, kas iestatīts uz EACCES .

Ja faila galvene netiek atpazīta (mēģinājums izpildīt atpakaļ ENOEXEC ), šīs funkcijas izpildīs čaulu ar faila ceļu kā pirmo argumentu. (Ja šis mēģinājums neizdodas, netiek veikta turpmāka meklēšana.)

Atgriešanās vērtība

Ja kāda no exec funkcijām atgriežas, radusies kļūda. Atgriešanās vērtība ir -1, un globālais mainīgais errno tiks iestatīts, lai norādītu kļūdu.