Dasexec Die Funktionsfamilie ersetzt das aktuelle Prozessabbild durch ein neues Prozessabbild. Die hier beschriebenen Funktionen sind Frontends für die Funktionausführen(2).
Das Anfangsargument für diese Funktionen ist der Pfadname einer Datei, die ausgeführt werden soll.
Das const char * arg und nachfolgende Ellipsen in derexecl, execlp, undExecle Funktionen können als gedacht werden arg0 , arg1 , …, argn . Zusammen beschreiben sie eine Liste von einem oder mehreren Zeigern auf nullterminierte Zeichenfolgen, die die Argumentliste darstellen, die dem ausgeführten Programm zur Verfügung steht. Das erste Argument sollte per Konvention auf den Dateinamen verweisen, der der ausgeführten Datei zugeordnet ist. Die Liste der Argumente Muss durch a beendet werdenNULL Zeiger.
Dasexecv undexecvp Funktionen stellen ein Array von Zeigern auf nullterminierte Zeichenfolgen bereit, die die für das neue Programm verfügbare Argumentliste darstellen. Das erste Argument sollte per Konvention auf den Dateinamen verweisen, der der ausgeführten Datei zugeordnet ist. Das Array von Zeigern Muss durch a beendet werdenNULL Zeiger.
DasExecle Funktion gibt auch die Umgebung des ausgeführten Prozesses an, indem er dem folgtNULLZeiger, der die Liste der Argumente in der Parameterliste oder den Zeiger auf das argv-Array mit einem zusätzlichen Parameter abbricht. Dieser zusätzliche Parameter ist ein Array von Zeigern auf nullterminierte Zeichenfolgen und Muss durch a beendet werdenNULL Zeiger. Die anderen Funktionen beziehen die Umgebung für das neue Prozessabbild von der externen Variablen umgebung im aktuellen Prozess.
Einige dieser Funktionen haben spezielle Semantik.
Die Funktionenexeclp undexecvp wird die Aktionen der Shell bei der Suche nach einer ausführbaren Datei duplizieren, wenn der angegebene Dateiname keinen Schrägstrich (/) enthält. Der Suchpfad ist der Pfad, der in der Umgebung von angegeben wirdPFAD Variable. Wenn diese Variable nicht angegeben wird, wird der Standardpfad ``: / bin: / usr / bin '' verwendet. Darüber hinaus werden bestimmte Fehler speziell behandelt.
Wenn die Erlaubnis für eine Datei verweigert wird (die versuchteausführen ist zurückgekommenEACCES) suchen diese Funktionen den Rest des Suchpfads weiter. Wenn keine andere Datei gefunden wird, werden sie mit der globalen Variablen zurückgegeben errno einstellenEACCES.
Wenn der Header einer Datei nicht erkannt wird (versucht wurde)ausführen ist zurückgekommenENOEXEC) führen diese Funktionen die Shell mit dem Pfad der Datei als erstes Argument aus. (Wenn dieser Versuch fehlschlägt, wird keine weitere Suche durchgeführt.)
Rückgabewert
Wenn einer derexec Funktionen zurück, ein Fehler ist aufgetreten. Der Rückgabewert ist -1 und die globale Variable errno wird gesetzt, um den Fehler anzuzeigen.
Wichtig: Verwenden Sie die Mann Befehl ( % Mann ), um zu sehen, wie ein Befehl auf Ihrem Computer verwendet wird.
Name
execl, execlp, execle, execv, execvp - Eine Datei ausführen
Zusammenfassung
#umfassen extern char ** environ; int execl (const char * Pfad , const char * arg , …); int execlp (const char * Datei , const char * arg , …); int execle (const char *) Pfad , const char * arg , …, char * const envp ); int execv (const char * Pfad char * const argv ); int execvp (const char *) Datei char * const argv );




