====== setenv() ======
''setenv()'' ist in der ''[[c:lib:stdlib:start|stdlib]]'' definiert, die in C über ''stdlib.h'', bzw in C++ über ''cstdlib'' eingebunden wird.
===== Funktion =====
''setenv()'' erstellt im [[Enviroment]] eine Systemvariable oder tauscht ihren Wert durch einen neuen Wert aus. Die übergebenen String werden durch setenv() in einen neuen String kopiert (im Gegensatz zu [[putenv()]].
===== Signatur =====
#include
int setenv( char const * name, char const * value, int override );
**name**: Name der Systemvariablen \\
**value**: Wert der Systemvariablen \\
**overwrite**: Falls der Variablenname bereits existiert wird der Wert nur dann überschrieben, wenn overwrite ungleich 0 ist. \\
\\
**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 |
| ENOMEN | No Memory: Nicht genug Speicher, um die Variable zu erzeugen |
===== Fehlerquellen =====
-
===== Beispiel =====
#include
#include
int main (void)
{
char *user;
char const * varname = "USER";
user = getenv( varname );
printf( "Dieser Prozess wurde vom Benutzer '%s' gestartet.\n", user );
if( setenv( varname, "proggen.org", 0 ))
printf( "Nicht überschreiben: Funktion meldet Fehler\n" );
user = getenv( varname );
printf( "Nicht überschreiben: USER entspricht nun '%s'.\n", user );
if( setenv( varname, "proggen.org", 1 ))
printf( "Überschreiben: Funktion meldet Fehler\n" );
user = getenv( varname );
printf( "Überschreiben: USER entspricht nun '%s'.\n", user );
return EXIT_SUCCESS;
}
**Ausgabe** \\
Dieser Prozess wurde vom Benutzer 'xin' gestartet.
Nicht überschreiben: USER entspricht nun 'xin'.
Überschreiben: USER entspricht nun 'proggen.org'.
===== siehe auch =====
[[c:lib:stdlib:]]: [[clearenv()]], [[getenv()]], [[putenv()]], [[unsetenv()]], [[c:lib:stdlib:Enviroment]]