AW: [Vienna-pm] "combined" filehandles

Bernd Petrovitsch bernd at firmix.at
Fri Feb 4 03:35:36 PST 2005


On Fri, 2005-02-04 at 12:13 +0100, Baier Oliver wrote:
[...]
> > Wie kommunizieren die Child-Prozesse bei den 1-Child-Bsp.?
> > Mit einer unnamed pipe?
> 
> ja, wie beschrieben im Perl Cookbook Beispiel 16.4 oder 16.6

Nein, sie kommunizieren mit einer unnamed Pipe pro Child.

> > Aus dem Kopf und Bauch müßte das mit mehreren Children auch
> > funktionieren (über eine Pipe).
> 
> das leider nicht (zumindest bei mir)
> ich will ja im parent nur von einem filehandle lesen, also muesste
> ich vor jedem fork eine pipe mit dem selben parent-Ende erstellen.

Du müßtest, aber das geht so nicht (zumindest nicht auf den Unixens
dieser Welt).
Es geht, wenn du *eine* Pipe erzeugst (vor dem "foreach"), dann fork()st
(im "foreach") und die Filehandles auf Child-Seite geeignet schließt (eh
so ähnlich wie im Bsp.code).

Äh, das die Ausgabe der Kindprozesse u.U. durcheinander kommen könnten,
ist Dir eh bewußt.

> leider wird ein filehandle bei der erneuten definition mit dem selben
> Namen ueberschrieben.

Natürlich. Der pipe(2) SysCall liefert nunmal *eine* Pipe und die hat 2
Enden und demnach 2 Filedeskriptoren (in Perl: Filehandles).

	Bernd
-- 
Firmix Software GmbH                   http://www.firmix.at/
mobil: +43 664 4416156                 fax: +43 1 7890849-55
          Embedded Linux Development and Services



More information about the Vienna-pm mailing list