getenv_s, wgetenv_s

Aus RAD Studio
Wechseln zu: Navigation, Suche

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

+

+

+

+

Siehe auch