|
|
Zugriff auf die UmgebungsvariablenDer bislang nicht erwähnte dritte Parameter von main() zeigt auf die Umgebungsvariablenliste. Wie bei argv handelt es sich um ein Array von Zeichenketten. Da hier allerdings die Anzahl nicht in einer separaten Variablen mitgeteilt wird, wird eine andere Form der Endekennung verwendet. Der Zeiger nach dem letzten Eintrag hat den Wert 0. In dem Beispielprogramm wird die komplette Liste der Umgebungsvariablen angezeigt.
[Zeigt die Liste der Umgebungsvariablen] main(int argc, char **argv, char **env) { int i; char *str;
if (env) { i=0; while(str = env[i]) { puts(env[i++]); } } } Wer das Programm startet bekommt eine riesige Liste, von der hier nur ein kurzer Ausschnitt angezeigt wird:
WINDOWMANAGER=/usr/X11R6/bin/kde HOME=/home/arnold TERM=xterm XNLSPATH=/usr/X11R6/lib/X11/nls no_proxy=localhost
Der dritte Parameter ist deswegen relativ unbekannt, weil
man über die externe, globale Variable
Im Normalfall werden Sie allerdings mit der kompletten Liste wenig anfangen
wollen, sondern werden eine spezielle Umgebungsvariable brauchen. Dazu
verwenden Sie die Funktion
#include <stdlib.h> char *getenv(const char *varname); int putenv(const char *zuweisung);
Sofern die als Parameter angegebene Variable gesetzt ist, bekommen Sie einen
Zeiger auf den Wert zurückgeliefert. Da dieser Zeiger beim nächsten Aufruf
von
Es ist auch möglich, vom Programm aus Umgebungsvariablen zu setzen. Dazu
dient die Funktion
putenv("TERM=vt100");
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|