setenv()

unsetenv() ist in der stdlib definiert, die in C über stdlib.h, bzw in C++ über cstdlib eingebunden wird.

Funktion

unsetenv() löscht aus dem Enviroment eine Systemvariable und gibt den dafür benötigten Speicher frei.

Signatur

#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

Fehlerquellen

-

Beispiel

#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.

siehe auch