Der System "execlp ()` System in Linux wird verwendet, um ein Programm auszuführen, wodurch der aktuelle ausgeführte Prozess durch das neue Programm ersetzt wird. Die "LP" in "execlp ()" steht für "Liste der Hinweise", die sich auf die Argumente bezieht, die an das neue Programm übergeben wurden. Hier ist eine detaillierte Erklärung, wie `execlp ()` funktioniert:
Prototyp:
`` `c
int execlp (const char *Datei, const char *arg0, ..., const char *argn, (char *) null);
`` `
Argumente:
- `file``:Dies ist der Pfad zur ausführbaren Datei oder zum Programm, das Sie ausführen möchten.
-`arg0`,` ..., `` argn`:Dies sind Hinweise auf null-terminierte Zeichenfolgen, die die Befehlszeilenargumente repräsentieren, die an das neue Programm übergeben werden sollen. `arg0` sollte immer der Name des Programms selbst sein.
- `(char *) null`:Dies ist ein erforderlicher Nullzeiger am Ende der Argumentationsliste. Es dient als Trennzeichen, um das Ende der Argument -Liste anzuzeigen.
Beschreibung:
- `execlp ()` ist eine Variation des "execl ()` Systemaufrufs, der eine vereinfachte und dennoch flexible Art zum Übergeben von Argumenten an das neue Programm verwendet. Es sucht automatisch nach der ausführbaren Datei in den in der Umgebungsvariablen `path` angegebenen Verzeichnissen.
- Wenn `execlp ()` aufgerufen wird, wird der aktuelle laufende Prozess durch das neue Programm ersetzt, das von `file`` angegeben ist. Die Argumente `arg0`,` ..., `` argn` werden als Befehlszeilenargumente an das neue Programm übergeben.
- `execlp ()` kehrt nicht zum Anrufprozess zurück. Stattdessen überträgt es die Kontrolle über das neue Programm, das mit der Ausführung beginnt. Wenn während der Ausführung von `execlp ()` Fehler wie die ausführbare Datei nicht gefunden oder unzureichende Berechtigungen ist, fehlschlägt der "execlp ()" -Anruf fehl.
Beispiel:
`` `c
#include
#include
int main () {
// Führen Sie den Befehl "ls -l" aus
execlp ("ls", "ls", "-l", (char *) null);
// Diese Zeile wird nur ausgeführt, wenn execlp () fehlschlägt
perror ("execlp () fehlgeschlagen");
Rückkehr 0;
}
`` `
In diesem Beispiel wird der "ls -l" -Fehl "ls -l" ausgeführt, der die Dateien im aktuellen Verzeichnis mit detaillierten Informationen auflistet. Wenn `execlp ()` erfolgreich ist, wird der Befehl "ls -l" ausgeführt und die Steuerung in das "LS` -Programm" übertragen. Wenn `execlp ()` auf einen Fehler trifft, druckt die Funktion "perror ()" eine Fehlermeldung in den Standardfehlerstrom ("Stderr").
Wichtige Punkte:
- `execlp ()` ist eine von mehreren `exec ()` familiären Funktionen unter Linux, die die gleiche Aufgabe der Ausführung neuer Programme ausführen, jedoch mit unterschiedlichen Argumentationsmechanismen. Andere gemeinsame `exec ()` -Funktionen umfassen `execl ()`, `execv ()`, `execvp ()` und `execve ()`.
- `execlp ()` Sucht nur nach der ausführbaren Datei in den von der "Path` -Umgebungsvariablen angegebenen Verzeichnissen. Daher ist es wichtig sicherzustellen, dass die ausführbare Datei in einem dieser Verzeichnisse vorhanden ist.
- Die Argumente `arg0`,` ..., `` argn` müssen null-terminierte Saiten sein. Das Übergeben von nicht null-terminierten Zeichenfolgen oder der Versuch, mehr Argumente zu verabschieden, als die Funktion verarbeiten kann, kann zu undefiniertem Verhalten führen.
- Der System "execlp ()` Systems wird in vielen Unix-ähnlichen Betriebssystemen verwendet, nicht nur in Linux.