GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Was bedeuten P und E in der Exec-Familie von Aufrufen?

l und v in exec-Aufrufen geben an, ob die Argumente per Liste oder array(vector) bereitgestellt werden . Ich habe irgendwo gelesen, dass p bezeichnet den Pfad des Benutzers und e die Umgebung bezeichnen, aber nicht verstanden haben, was das bedeutet?

Akzeptierte Antwort:

Überprüfen Sie diesen Wikipedia-Link zur Exec-Funktion und diesen Link zum Starten eines Prozesses mit den Aufrufen von exec()

e – Ein Array von Zeigern auf Umgebungsvariablen wird explizit an das neue Prozessabbild übergeben.

Die Versionen mit dem Suffix „e“ übergeben eine Umgebung an das Programm. Eine
Umgebung ist genau das – eine Art „Kontext“, in dem das Programm
arbeiten kann. Beispielsweise haben Sie vielleicht eine Rechtschreibprüfung mit einem
Wörterbuch von Wörtern. Anstatt den Speicherort des Wörterbuchs
jedes Mal auf der Befehlszeile anzugeben, können Sie ihn auch in der
Umgebung angeben:

l – Kommandozeilenargumente werden einzeln (als Liste) an die Funktion übergeben.

Wenn ich zum Beispiel den Befehl ls mit den Argumenten -t,
-r und -l aufrufen möchte (bedeutet „sortiere die Ausgabe nach Zeit, in umgekehrter Reihenfolge, und zeige mir die lange Version der Ausgabe“ ), könnte ich es auch als
angeben.

p – Verwendet die Umgebungsvariable PATH, um die im Pfadargument genannte Datei zu finden, die ausgeführt werden soll.

Die Versionen mit dem Suffix „p“ durchsuchen die Verzeichnisse in Ihrer Umgebungsvariable PATH
, um die ausführbare Datei zu finden. Sie haben wahrscheinlich bemerkt,
dass alle Beispiele einen fest codierten Speicherort für die ausführbare Datei haben:
/bin/ls und /usr/bin/spellcheck. Was ist mit anderen ausführbaren Dateien? Sofern
Sie nicht zuerst den genauen Pfad für dieses bestimmte Programm herausfinden möchten,
wäre es am besten, wenn der Benutzer Ihrem Programm alle Stellen mitteilt, an denen
nach ausführbaren Dateien gesucht werden soll. Die Standardumgebungsvariable PATH macht
genau das.

v – Befehlszeilenargumente werden als Array (Vektor) von Zeigern an die Funktion übergeben.

Die Argumentliste wird über einen Zeiger auf einen Argumentvektor angegeben.

Wie in der anderen Antwort erwähnt, ist dieser Link zu Unix-Systemaufrufen auch zum Weiterlesen gleichermaßen großartig.

Verwandte:$PWD? (im Vergleich zum aktuellen Arbeitsverzeichnis)?
Linux
  1. Was ist ein Webserver und wie funktioniert ein Webserver?

  2. Was bedeutet Exec 3?

  3. Was bedeuten -s und [[]] in einer if-Bedingung in Bash?

  4. Der Sinn von Uniq -u und was macht es?

  5. Was ist DNS und wie funktioniert es?

Linux-Dateibefehl:Was macht er und wie wird er verwendet?

Was bedeutet null in Linux und Computing

PDF Split and Merge „PDFSAM“ macht genau das, was es verspricht

Was sind Linux-Systemaufrufe und Bibliotheksfunktionen?

Was ist eine .pid-Datei und was enthält sie?

Was bedeutet NT_STATUS_BAD_NETWORK_NAME in Samba?