Problem mit Dateihandles und Prozessaufrufen
Matt LeBlanc
- perl
Hallo,
wie kann man die Ausgabe eines Dateihandles auf ein früher geöffneten Prozess
umleiten. Das sieht ungefähr so aus :::
open(MAIL, " /usr/sbin/sendmail -t")
...
open(ENCODE, " /usr/bin/uuencode STDIN") -> diese Ausgabe soll an den oberen
Aufruf weitergeleitet werden.
Nur wie ???
Das ganze läuft unter Linux.
Danke
Hallo,
wie kann man die Ausgabe eines Dateihandles auf ein früher geöffneten Prozess
umleiten. Das sieht ungefähr so aus :::open(MAIL, " /usr/sbin/sendmail -t")
...
open(ENCODE, " /usr/bin/uuencode STDIN") -> diese Ausgabe soll an den oberen
Aufruf weitergeleitet werden.
Nur wie ???
Das ganze läuft unter Linux.Danke
Hi,
meinst Du sowas ? :
open (MAIL, ">test.pl.log");
print MAIL "Hallo\n";
open (BIN, "/usr/bin/uuencode /home/admins/test filename ");
while (my $line = <BIN>) {
print MAIL $line;
}
close(BIN);
close(MAIL);
Bitte
Hi,
open(MAIL, " /usr/sbin/sendmail -t")
...
open(ENCODE, " /usr/bin/uuencode STDIN") -> diese Ausgabe soll
an den oberen
Aufruf weitergeleitet werden.
Nur wie ???
open(MAIL, " /usr/sbin/sendmail -t") or die("Konnte sendmail nicht oeffnen: $!");
open(ENCODE, "/usr/bin/uuencode STDIN ") or die("Konnte uuencode nicht oeffnen: $!");
Und zwar deshalb, weil du ja die von "uuencode" erzeugte Ausgabe
haben willst. Dann ist der Rest im Grunde ein Kinderspiel:
In einer Schleife den Inhalt einfach an MAIL weiterleiten.
while(<ENCODE>)
{
print MAIL "$_";
}
close(MAIL);
close(ENCODE);
mfg
CK1
Hallo
ich glaube ich verstehe was du willst.
Du versuchst in einer open Anweisung eine Pipe am Anfang und am Ende
zu öffnen. Das geht mit der normalen open Anweisung aber nicht.
Dafür mußt du open2 aus der IPC benutzen.
Viel Glück.