getenv_s, wgetenv_s
Nach oben zu stdlib.h - Index
Header-Datei
stdlib.h
Kategorie
Kommunikation mit der Umgebung
Prototyp
errno_t getenv_s(size_t * restrict len, char * restrict value, rsize_t maxsize, const char * restrict name);
errno_t wgetenv_s(size_t * restrict len, wchar_t * restrict value, rsize_t maxsize, const wchar_t * restrict name);
Beschreibung
Mit der Funktion getenv_s wird auf den Wert einer in name angegebenen Umgebungsvariable zugegriffen, dieser Wert in dem durch value bezeichneten String gespeichert und die Länge des Strings entsprechend len gesetzt, aber nur, falls die Länge des Wertes kleiner oder gleich maxsize ist.
Für diese Funktion bestehen die folgenden Laufzeiteinschränkungen: name und value dürfen nicht Null sein und maxsize darf nicht Null oder größer als RSIZE_MAX sein.
Die Umgebungsvariablen bestehen aus einer Reihe von Einträgen der Form name=string\0.
getenv_s setzt den Wert einer angegebenen Variable im Zeichen-Array, auf das value zeigt. name kann in Groß- oder Kleinbuchstaben angegeben werden, darf jedoch kein Gleichheitszeichen (=) enthalten Ist die angegebene Umgebungsvariable nicht vorhanden, setzt getenv_s den Integerwert, auf den len zeigt, auf Null und value[0] ebenfalls auf Null.
Hinweis: Umgebungsvariablen dürfen nicht direkt geändert werden. Wenn Sie einen Umgebungswert ändern möchten, müssen Sie putenv verwenden.
Rückgabewert
Bei erfolgreicher Ausführung gibt getenv_s 0 zurück, ansonsten einen Nicht-Nullwert.
Beispiel
#include <stdio.h> #include <stdlib.h> #include <alloc.h> #include <string.h> int main(void) { char ptr[80]; char *path; int i = 0; unsigned int len; /* Get the current path environment */ getenv_s(&len, ptr, 80,"PATH"); /* Set up new path */ path = (char *) malloc(len+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("%s\n",_environ[i++]); return 0; }
Portabilität
POSIX | Win32 | ANSI C | ANSI C++ | |
---|---|---|---|---|
getenv_s |
+ |
+ |
+ |
+ |