Umgebungsvariablen auslesen und setzen[Linux]
-
Hi,
wie kann ich die Umgebungsvariablen von Linux auslesen und auch wieder setzten?
z.b PATH, oder sonst noch was
-
getenv und putenv
-
Hi,
danke.
Ich habe es ausprobiert und es geht, leider kann ich meine festgelegte Variable mit "set" nicht sehen. Wo wird die denn gespeichert unter Linux?
mfg
whete.rabbit
-
Umgebungsvariablen werden immer nach unten vererbt. Wenn du einen Code hast, wie
//putenv0.c #include <stdlib.h> int main() { putenv("FOO=bar"); return 0; }
> gcc -Wall -W putenv0.c > set | grep FOO > ./a.out > set | grep FOO
geht das nicht, da die Umgebungsvariablen der übergeordneten Shell nicht geändert werden
//putenv1.c #include <stdlib.h> #include <sys/types.h> #include <sys/wait.h> #include <unistd.h> int main() { putenv("FOO=bar"); pid_t pid=fork(); if(pid==0) execlp("/bin/sh","/bin/sh",NULL); else if(pid==-1) return 1; else { int status; wait(&status); } return 0; }
> gcc -Wall -W putenv1.c > ./a.out sh$ set | grep FOO FOO=bar sh$ exit >
hoffe du verstehst mich
btw.
ab nachLinux/Unix
-
Dieser Thread wurde von Moderator/in Shade Of Mine aus dem Forum ANSI C in das Forum Linux/Unix verschoben.
Im Zweifelsfall bitte auch folgende Hinweise beachten:
C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?Dieses Posting wurde automatisch erzeugt.