Skip to main content

Execv - Linux Command - Unix Command

Agregar syscall al kernel de linux Tarea (Juni- 2026)

Agregar syscall al kernel de linux Tarea (Juni- 2026)
Anonim

execl, execlp, execle, execv, execvp - voer een bestand uit

Korte inhoud

#include

extern char ** environment;

int execl (const char * pad , const char * arg , …); int execlp (const char * het dossier , const char * arg , …); int execle (const char * pad , const char * arg , …, char * const envp ); int execv (const char * pad , char * const argv ); int execvp (const char * het dossier , char * const argv );

Beschrijving van exec-functies

Deexec functiefamilie vervangt het huidige procesbeeld door een nieuw procesbeeld. De functies die worden beschreven in deze handleiding zijn front-ends voor de functieexecve(2). (Zie de handleiding voorexecve voor gedetailleerde informatie over de vervanging van het huidige proces.)

Het eerste argument voor deze functies is de padnaam van een bestand dat moet worden uitgevoerd.

De const char * arg en volgende ellipsen in deexecl, execlp, enexecle functies kunnen worden gezien als arg0 , arg1 , …, argn . Samen beschrijven ze een lijst van een of meer verwijzingen naar null-terminated strings die de argumentlijst vertegenwoordigen die beschikbaar is voor het uitgevoerde programma. Het eerste argument moet bij conventie verwijzen naar de bestandsnaam die is gekoppeld aan het bestand dat wordt uitgevoerd. De lijst met argumenten moet worden beëindigd door eenNUL wijzer.

Deexecv enexecvp functies bieden een reeks verwijzingen naar null-terminated strings die de argumentlijst vertegenwoordigen die beschikbaar is voor het nieuwe programma. Het eerste argument moet bij conventie verwijzen naar de bestandsnaam die is gekoppeld aan het bestand dat wordt uitgevoerd. De reeks aanwijzers moet worden beëindigd door eenNUL wijzer.

Deexecle functie specificeert ook de omgeving van het uitgevoerde proces door deNUL pointer die de lijst met argumenten in de parameterlijst of de pointer naar de argv-array met een extra parameter beëindigt. Deze extra parameter is een array van verwijzingen naar null-terminated strings en moet worden beëindigd door eenNUL wijzer. De andere functies nemen de omgeving voor het nieuwe procesbeeld van de externe variabele environ in het huidige proces.

Sommige van deze functies hebben een speciale semantiek.

De functiesexeclp enexecvp dupliceert de acties van de shell bij het zoeken naar een uitvoerbaar bestand als de opgegeven bestandsnaam geen schuine streep (/) bevat. Het zoekpad is het pad dat door de omgeving is opgegeven in de omgevingPAD variabel. Als deze variabele niet is opgegeven, wordt het standaardpad ``: / bin: / usr / bin '' gebruikt. Bovendien worden bepaalde fouten speciaal behandeld.

Als toestemming wordt geweigerd voor een bestand (de pogingexecve teruggekeerdEACCES), blijven deze functies de rest van het zoekpad doorzoeken. Als er echter geen ander bestand wordt gevonden, keren ze terug met de globale variabele errno ingesteld opEACCES.

Als de header van een bestand niet wordt herkend (de pogingexecve teruggekeerdENOEXEC), zullen deze functies de shell uitvoeren met het pad van het bestand als eerste argument. (Als deze poging mislukt, is verder zoeken niet voltooid.)

Retourwaarde van exec-functies

Als een van deexec functies retourneert, is er een fout opgetreden. De geretourneerde waarde is -1 en de globale variabele errno zal worden ingesteld om de fout aan te geven.