In diesem Artikel spreche ich über die EXEC -Familie der Funktionen und zeige Ihnen, wie Sie jede dieser Exec -Familienfunktionen in C verwenden können. Also lasst uns anfangen.
C -Systemfunktionen in der EXEC -Familie:
Die Exec -Funktionsfamilien sind im Header definiert Unistd.H. Sie müssen diesen Header im C -Programm verwenden, in dem Sie diese Funktionen verwenden möchten.
Die verfügbaren EXEC -Funktionen zusammen mit ihren Funktionsparametern finden Sie unten:
Mal sehen, was jede dieser Funktionen tun und wie sie verwendet werden sollen.
execl () Systemfunktion:
In execl () Systemfunktion übernimmt der Pfad der ausführbaren Binärdatei (i.e. /bin/ls) als erstes und zweites Argument. Dann die Argumente (ich.e. -lh, /heim) dass Sie an die ausführbare Datei übergehen möchten, gefolgt von NULL. Dann führt die Systemfunktion execl () den Befehl aus und druckt die Ausgabe aus. Wenn ein Fehler auftritt, gibt execl () -1 zurück. Ansonsten gibt es nichts zurück.
Ein Beispiel für die System -Funktion von EXECL () ist unten angegeben:
#enthaltenIch habe die gelaufen ls -lh /home Befehl Verwenden von EXECL () -Systemfunktion. Wie Sie sehen können, wird das richtige Ergebnis angezeigt.
execlp () Systemfunktion:
execl () verwendet die nicht WEG Umgebungsvariable. Der vollständige Pfad der ausführbaren Datei muss also mit execl () ausgeführt werden. execlp () verwendet die Pfadumgebungsvariable. Wenn also eine ausführbare Datei oder ein Befehl im Pfad verfügbar ist, ist der Befehl oder der Dateiname ausreichend, um sie auszuführen, der vollständige Pfad ist nicht benötigt.
Wir können das Beispiel für execl () mit der Systemfunktion execlp () wie folgt umschreiben:
#enthaltenIch habe nur den Befehlsnamen übergeben ls, nicht der volle Weg /bin/ls. Wie Sie sehen können, habe ich die gleiche Ausgabe wie zuvor bekommen.
execv () Systemfunktion:
In der Funktion von execl () werden die Parameter der ausführbaren Datei als verschiedene Argumente an die Funktion übergeben. Mit execV () können Sie alle Parameter in einem von Null gekündigten Array übergeben argv. Das erste Element des Arrays sollte der Pfad der ausführbaren Datei sein. Andernfalls funktioniert die Funktion execv () als execl () Funktion.
Wir können das Beispiel für execl () wie folgt umschreiben:
#enthaltenWie Sie sehen können, bekomme ich die richtige Ausgabe.
execvp () Systemfunktion:
Funktioniert genauso wie execv () Systemfunktion. Die Pfadumgebungsvariable wird jedoch verwendet. Der vollständige Pfad der ausführbaren Datei ist also nicht wie in execlp () erforderlich.
Wir können das execv () -Abbeispiel wie folgt umschreiben:
#enthaltenWie Sie sehen können, wird die richtige Ausgabe angezeigt.
Execle () Systemfunktion:
Funktioniert genau wie execl (), aber Sie können Ihre eigenen Umgebungsvariablen zusammenstellen. Die Umgebungsvariablen werden als Array übergeben Envp. Das letzte Element der Envp Array sollte null sein. Alle anderen Elemente enthalten die Schlüsselwertpaare als Zeichenfolge.
Ein Beispiel für die Systemfunktion von Execle () ist unten angegeben:
#enthaltenIch habe zwei Umgebungsvariablen bestanden Hostname Und HAFEN zur Funktion von execle (). Wie Sie sehen können, kann ich aus der ausführbaren Datei auf sie zugreifen /Bin/Bash.
execve () Systemfunktion:
Genau wie bei execle () können Sie zusammen mit execve () Ihre eigenen Umgebungsvariablen bereitstellen. Sie können auch Argumente als Arrays wie in execv () übergeben.
Das Beispiel von Execle () kann wie folgt umgeschrieben werden:
#enthaltenWie Sie sehen können, erhalten wir die gleiche Ausgabe wie im Execle () Beispiel.
So verwenden Sie die Exec -Funktionsfamilie in C für die Systemprogrammierung unter Linux. Danke, dass du diesen Artikel gelesen hast.