Bonsoir,
On Friday, 11. January 2002 19:24, Eric Schaefer wrote:
Mutt wertet $EDITOR aus. Wenn ich nun selbiges lösche und (bash) nur per "EDITOR=emacs" die Variable wieder setze ist die doch NICHT exportiert, oder? Aufruf von mutt und schreiben einer Mail ergibt: emacs wird gestartet (ansonsten mit gelöschter EDITOR Variable: "vi".
Wie, das Ändern einer Umgebungsvariable nach dem Start eines Programmes außerhalb desselben sorgt dafür, daß ein getenv() im Programm was neues liefert? :)
Alles andere wäre ja auch Quark. Das exportieren ist doch IMHO nur dafür da, daßdiese Variablen vom kind an den Parent zurückgegeben werden (sonst könnte man in Skripen wie .bashrc auch keine Variablen sinnvoll setzen...)
Da gibt es den "Punkt" (.), damit wird das ge-source-t und somit ist dort gar kein Kindprozess am Werk. IMO ist es gar nicht möglich, Umgebungsvariablen im Programm zu setzen und dann vom Elternteil auszulesen. Folgende Problematik hatten wir letztens auf unserem OSS-Entwicklungsserver: - jeder Entwickler bekommt Zugang zum Rechner über ein gemeinsames Login - wenn er sich mit SSH einloggt, wird nochmal Nutzername/Passwort abgefragt, dieses mit einem Eintrag in einer libdb-Datenbank verglichen, und wenn alles stimmt dann landet er in /home/$gemeinsameslogin/home/$seinlogin. Man kann dann nicht einfach $USER setzen in dem Programm was die Datenbank abfragt, sondern muß irgendwelche Tricks verwenden, wobei in einem solchen Fall eine temporäre Datei schon hilft. (Leider gibt es ja keine Strings als Programmrückgabewerte auf herkömmlichen Unixsystemen, sonst könnte man auch ein return $username machen ;)
Oh, und damit's nicht ganz OT ist: static struct winsize window; static int tty_des aus: #include <sys/ioctl.h> -> bits/ioctl-types.h
Josef Spillner