ein Kapitel zurück                                           ein Kapitel weiter

Jeder Prozess besitzt eine Liste seiner Umgebung. Eine sogenannte Environment-Liste. Diese sieht jetzt natürlich von Fall zu Fall etwas unterschiedlich aus. Mit der Environment-Liste ist aber dabei die Umgebungsliste des aktuellen Prozesses gemeint, die dem Prozess beim Startup übergeben wird. Die Environment-Liste ist wie schon bei der Argument-Liste (argv) ein Array von Zeigern auf Strings. Die Schreibweise ist die selbe wie bei der Argument-Liste....

extern char **environ;

oder

extern char *environ[];  

Hierzu mal ein Beispiel wie so eine Environment-Liste in etwa aussieht....




Hierzu nun ein Programm wie sie die Umgebung eines Prozesses erfragen können....

/*Download:env1.c*/
#include <stdio.h> #ifdef __MSDOS__ #include <dos.h> #endif extern char **environ; int main() { int i; for (i=0; environ[i] != NULL; i++) printf("%s\n",environ[i]); return 0; }

Mit diesem Programm wird die komplette Environment-Liste ausgegeben. Alternativ können sie sich Liste Ihrer Umgebung auch ohne...

extern char **environ;  

...ausführen in dem sie als 3.Argument in main eingeben....

int main(char argc, char**argv, char **envp)  

Hier nun der Code dazu. Das Programm leistet das selbe wie das oben...

/*Download:env2.c*/
#include <stdio.h> int main(int argc, char **argv, char **envp) { int i; for (i=0; envp[i] != NULL; i++) printf("%s\n",envp[i]); return 0; }

Diese Möglichkeit ist aber nicht mehr Zeitgemäß da ANSI-C festlegt, das die main-Funktion nur noch 2 Argumente hat.

Wir fassen nochmals zusammen. Um auf die Environment-Liste zuzugreifen haben wir 2 Möglichkeiten.....

  1. Zugriff über die Globale Variable environ (extern char **environ).
  2. Zugriff über ein drittes Argument in der main-Funktion.

ein Kapitel zurück          nach oben           ein Kapitel weiter


© 2001,2002 Jürgen Wolf