Thread perl GTK2 Ausgabe von tail -f: Ausgabe tail-f in einen textview-widget (5 answers)
Opened by puhvogel at 2005-09-12 23:57

puhvogel
 2005-09-12 23:57
#44553 #44553
User since
2005-09-12
1 Artikel
BenutzerIn
[default_avatar]
Hallo erstmal!
Ich lese schon länger mit, aber jetzt habe ich auch eine Frage:

Ich möchte die Ausgabe von tail -f /var/log/messages in ein textview-widget umleiten. Hier mein Versuch der leider nicht klappt...

Code: (dl )
1
2
3
4
5
$cmd = "tail -f /var/log/messages";
$fh = new IO::File;
my $pid = $fh->open ("$cmd|");
die "can't fork: $!\n" unless defined $pid;
Glib::IO->add_watch (fileno $fh, [qw/in hup err/],\&watch_callback, $fh);

hier die watch_callback dazu:

Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
sub watch_callback {
my ($fd, $condition, $fh) = @_;
if ($condition >= 'in') {
my $data = scalar <$fh>;
if (defined $data) {
my $buffer = $textview1->get_buffer;
$buffer->insert ($buffer->get_end_iter, $data);
}
}
if ($condition >= 'hup' or $condition >= 'err') {
$fh->close;
$fh = undef;
}

if ($fh) {
return TRUE;
} else {
return FALSE;
}
}

Es wird immer nur die erste Zeile angezeigt. Was mache ich falsch?
cu
Puhvogel

View full thread perl GTK2 Ausgabe von tail -f: Ausgabe tail-f in einen textview-widget