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 FileHandle; 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, 1998, 1999, 2000 Andreas Borchert, in HTML konvertiert am 07.02.2000