Re: Fragen zu "stderr"

From: Bernd Walter <ticso(at)cicely12.cicely.de>
Date: Fri, 26 Oct 2007 21:19:03 +0200

On Fri, Oct 26, 2007 at 04:15:01PM +0200, Oliver Fromme wrote:
> Marc Santhoff wrote:
> > ich habe hier ein Programm, das so heftig nach "stderr" schreibt, daß
> > der Kanal nicht mehr aufnahmefähig ist. Dann gibt es einen Fehler
> > [EAGAIN], also non-blocking-i/o. Ich hätte gefühlsmäßig eher mit
> > blockierendem Verhalten gerechnet.
> >
> > Ist das unter FreeBSD die Standardeinstellung? Und wie verhält es sich
> > mit den verschiedenen Systemversionen (hier 4.11 und 6/7-STABLE)?
>
> Das hat erstmal nichts direkt mit stderr zu tun, denn
> stderr ist ja erstmal ein Filedescriptor wie jeder andere
> auch, nur dass er aus Konvention für spezielle Dinge
> verwendet wird.
>
> Entscheidend ist, was für eine Art Descriptor stderr in
> Deinem Fall ist: Ist es ein tty, eine Pipe, eine einfache
> Datei, ...? Bei einer einfachen Datei z.B. ist blockie-
> rendes Verhalten die Standardeinstellung, sofern das
> betreffende Programm nicht selbst auf non-blocking I/O
> umschaltet.
>
> Wie gesagt, das verhält sich bei stderr eigentlich nicht
> anders als bei jedem anderen Descriptor.

Nun - es gibt eine Besonderheit, die damit zu tun hat wo so ein
Desriptor her kommt.
Meist werden die Descriptoren vom aufrufenden Programm irgendwann vor
dem exec angelegt, mitunter sogar über Generationen durchvererbt.
Damit hat auch das aufrufende Programm (z.B. die Shell) einen Einfluß
darauf mit welchen Eigenschaften diese für das neue Programm
voreingestellt sind.

-- 
B.Walter                http://www.bwct.de      http://www.fizon.de
bernd(at)bwct.de           info(at)bwct.de            support(at)fizon.de
To Unsubscribe: send mail to majordomo(at)de.FreeBSD.org
with "unsubscribe de-bsd-questions" in the body of the message
Received on Fri 26 Oct 2007 - 21:20:11 CEST

search this site