Betrachter für wachsende Dateien IV

 [Vorheriges Kapitel]  [Vorherige Seite]  [Inhaltsverzeichnis]  [Nächste Seite]  [Nächstes Kapitel]

logviewer.pl
my $pipe = new IO::File;
my $pid;
if (defined($pid = open($pipe, "-|"))) {
   if ($pid > 0) {
      return ($pipe, $pid);
   } else {
      exec($cmd) || exit 1;
   }
} else {
   return undef;
}

*$pipe = new IO::Handle; legt einen neue Dateiverbindung an, ohne sie konkret zu eröffnen.
 
*Im Vergleich zu open($pipe, "$cmd |") wird bei open($pipe, "-|") nur eine Pipeline angelegt und fork ausgeführt -- jedoch kein exec.
 
*Entsprechend liefert diese Variante von open den Return-Wert von fork zurück:

0Abgeleiteter Prozeß, führt nachher exec aus.
> 0Elterlicher Prozeß.
undeffork ging schief.

 

*Mehr zu dieser Technik gibt es auf der Manualseite perlipc unter der Rubrik ``Safe Pipe Opens''.
 

 [Vorheriges Kapitel]  [Vorherige Seite]  [Inhaltsverzeichnis]  [Nächste Seite]  [Nächstes Kapitel]
Copyright © 1996 - 2003 Andreas Borchert, in HTML konvertiert am 01.10.2003