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