AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Cross-Platform-Entwicklung Alle Umgebungsvariablen unter Linux (posix) auslesen
Thema durchsuchen
Ansicht
Themen-Optionen

Alle Umgebungsvariablen unter Linux (posix) auslesen

Ein Thema von kernelhacker · begonnen am 10. Nov 2021 · letzter Beitrag vom 11. Nov 2021
Antwort Antwort
kernelhacker

Registriert seit: 6. Feb 2019
1 Beiträge
 
#1

Alle Umgebungsvariablen unter Linux (posix) auslesen

  Alt 10. Nov 2021, 18:14
Servus,

ich würde gerne die Liste aller Umgebungsvariablen für den aktuellen Prozess auslesen. Dies ist mit Delphi unter Windows ja auch kein Problem, aber ich muss primär Linux unterstützen.
Ich könnte natürlich eine Shell starten, dort env, printenv oder set ausführen und die Ausgabe von STDIN auslesen. Das ist aber in meinen Augen keine saubere Lösung.
Hat jemand einen heißen Tipp, wie man "sauber" an die Umgebungsvariablen rankommt?

Schönen Abend,

Stefan
Stefan Pokorny
  Mit Zitat antworten Zitat
Benutzerbild von Dalai
Dalai

Registriert seit: 9. Apr 2006
1.682 Beiträge
 
Delphi 5 Professional
 
#2

AW: Alle Umgebungsvariablen unter Linux (posix) auslesen

  Alt 10. Nov 2021, 21:14
Unter Linux werden die Umgebungsvariablen von Prozessen in /proc/<pid>/environ abgelegt und sind daher auch von dort abrufbar. Ganz wichtig zu wissen ist in diesem Zusammenhang, dass sich der Inhalt dieser Pseudo-Datei nicht ändert, wenn ein Prozess weitere Variablen hinzufügt, denn sie gibt die Variablen zum Startzeitpunkt des Prozesses an.

Den eigenen Prozess bekommt man unter /proc/self, die Umgebungsvariablen des eigenen Prozesses daher unter /proc/self/environ.

Wie portabel das Ganze ist, weiß ich auch nicht, denn AFAIK gibt's /proc nicht unter allen Unices.

Ich kann mir vorstellen, dass es bestimmte Funktionen in den üblichen Bibliotheken (libc6) gibt, die die aktuellen Umgebungsvariablen zurückgeben. Stellt sich auch die Frage, welchem Ziel das dienen soll, die Liste der Umgebungsvariablen zu bekommen.

Grüße
Dalai
  Mit Zitat antworten Zitat
Frickler

Registriert seit: 6. Mär 2007
Ort: Osnabrück
599 Beiträge
 
Delphi XE6 Enterprise
 
#3

AW: Alle Umgebungsvariablen unter Linux (posix) auslesen

  Alt 11. Nov 2021, 18:41
Servus,

ich würde gerne die Liste aller Umgebungsvariablen für den aktuellen Prozess auslesen. Dies ist mit Delphi unter Windows ja auch kein Problem, aber ich muss primär Linux unterstützen.
Ich könnte natürlich eine Shell starten, dort env, printenv oder set ausführen und die Ausgabe von STDIN auslesen. Das ist aber in meinen Augen keine saubere Lösung.
Hat jemand einen heißen Tipp, wie man "sauber" an die Umgebungsvariablen rankommt?

Schönen Abend,

Stefan
In der Linux Standardbibliothek libc gibts dafür eine Variable "environ", definiert als "extern char **environ;".
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 06:47 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz