getenv, _wgetenv
Nach oben zu Stdlib.h - Index
Header-Datei
stdlib.h
Kategorie
Prozesssteuerungsroutinen
Prototyp
char *getenv(const char *name);
wchar_t *_wgetenv(const wchar_t *name);
Inhaltsverzeichnis
Beschreibung
Ermittelt eine Umgebungsvariable aus der Systemumgebung.
Die Umgebungsvariablen bestehen aus einer Reihe von Einträgen der Form name=string\0
.
getenv gibt den Wert der angegebenen Variable zurück. name kann in Groß- oder Kleinbuchstaben angegeben werden, darf jedoch kein Gleichheitszeichen (=
) enthalten. Ist die angegebene Umgebungsvariable nicht vorhanden, gibt getenv einen NULL-Zeiger zurück.
Verwenden Sie zum Bearbeiten einer Umgebungsvariable putenv, _wputenv.
Hinweis: Die Funktion getenv gibt einen Zeiger auf die Umgebungsvariable - keine Kopie des Inhalts der Variable - zurück. Daher ist es möglich, den Inhalt der Variable mit dem ermittelten Zeiger, wie in dem folgenden Beispiel, zu ändern:
Dieses Vorgehen zum Ändern des Inhalts einer Umgebungsvariable wird nicht empfohlen.char *p; p = getenv("PROCESSOR_ARCHITECTURE"); puts(p); strcpy(p, "F20"); p = getenv("PROCESSOR_ARCHITECTURE"); // has no effect on p puts(p);Mögliche Ausgabe:
x86 F20
Rückgabewert
Bei Erfolg gibt getenv den dem Namen zugeordneten Wert zurück.
Ist keine Umgebungsvariable mit dem angegebenen Namen vorhanden, gibt getenv einen NULL-Zeiger zurück.
Beispiel
#include <stdio.h>
#include <stdlib.h>
#include <alloc.h>
#include <string.h>
int main(void)
{
char *path, *ptr;
int i = 0;
/* get the current path environment */
ptr = getenv("PATH");
/* set up new path */
path = (char *) malloc(strlen(ptr)+15);
strcpy(path,"PATH=");
strcat(path,ptr);
strcat(path,";c:\\temp");
/* replace the current path and display current environment */
putenv(path);
while (_environ[i]){
printf("%s\n",_environ[i++]);
}
return 0;
}
Portabilität
POSIX | Win32 | ANSI C | ANSI C++ | |
---|---|---|---|---|
getenv |
+ |
+ |
+ |
+ |
_wgetenv |
+ |