Regional-de archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Re: Kernelbauen in -current



On Wed, 24 Mar 2010 22:33:04 +0100
Thomas Kaepernick <mast_1%gmx.net@localhost> wrote:

> > ./build.sh ... wasauchimmer > build.log 2>&1 &
> Das ist etwas, womit ich bisher auch nicht so klar kam. Ich habe die
> Reihenfolge der beiden Umleitungen bisher immer anders herum "benutzt"
> und es klappte dann nicht.
Es ist auch nicht so einfach zu verstehen wieso es so rum sein muss.

">" oder "1>" leitet Filedescriptor 1, also stdout um. "2>" leitet
Filedescriptor 2, also stderr um. "2>&1" leitet Filedescriptor 2 in
den schon bestehenden Filedescriptor 1 um. (intern verbirgt sich dup(2)
dahinter.) Mit den Filedescriptoren sind Dateien verknüpft.
Standardmäßig eben das tty des (pseudo) Terminals. Wenn man nun eine
Umleitung in eine Datei macht, wird der Filedescriptor geschlossen und
auf der Datei neu geöffnet.

./build.sh ... wasauchimmer > build.log 2>&1 &
Macht folgendes:
FD 1 wird geschlossen.
FD 1 wird auf Datei "build.log" neu geöffnet.
FD 2 wird geschlossen.
FD 1 wird auf FD 2 dup(2)liziert.
FD 1 und FD 2 sind daher nun identisch und verweisen auf die
     Datei "build.log".

./build.sh ... wasauchimmer 2>&1 > build.log &
Macht nun folgendes:
FD 2 wird geschlossen.
FD 1 wird auf FD 2 dup(2)liziert.
FD 1 und FD 2 sind daher nun identisch und verweisen nach wie vor
     auf das tty(4)
FD 1 wird geschlossen, FD 2 bleibt offen und zeigt unverändert
     auf das tty(4).
FD 1 wird auf Datei "build.log" neu geöffnet.

Wird es jetzt klar?

> Wobei es wohl nicht mit der csh funktioniert.
Kann sein, dass die csh das anders macht. Ich hab die csh immer nur
so lange benutzt, bis ich meine Login-Shell auf ksh(1) oder bash(1)
umgestellt hatte. :-)
-- 


tschüß,
       Jochen

Homepage: http://www.unixag-kl.fh-kl.de/~jkunz/



Home | Main Index | Thread Index | Old Index