unsetenv()
ist in der stdlib
definiert, die in C über stdlib.h
, bzw in C++ über cstdlib
eingebunden wird.
unsetenv()
löscht aus dem Enviroment eine Systemvariable und gibt den dafür benötigten Speicher frei.
#include <stdlib.h> int setenv( char const * name, char const * value, int override );
name: Name der zu löschenden Systemvariablen
Return Value: 0 bei Erfolg, im Fehlerfall den Wert -1, wobei ein errno gesetzt wird:
errno | Bedeutung | |
---|---|---|
EINVAL | Invalid Value: name ist NULL, zeigt auf einen leeren String oder enthält ein '='-Zeichen |
-
#include <stdio.h> #include <stdlib.h> int main (void) { char *user; char const * varname = "USER"; user = getenv( varname ); printf( "Dieser Prozess wurde vom Benutzer '%s' gestartet.\n", user ); if( unsetenv( varname )) printf( "Nicht überschreiben: Funktion meldet Fehler\n" ); user = getenv( varname ); if( user ) printf( "USER entspricht weiterhin '%s'.\n", user ); else printf( "Variable USER existiert nicht.\n" ); return EXIT_SUCCESS; }
Ausgabe
Dieser Prozess wurde vom Benutzer 'xin' gestartet. Variable USER existiert nicht.