Schrift
[thread]5078[/thread]

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



<< >> 6 Einträge, 1 Seite
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
J-jayz-Z
 2005-09-20 12:49
#44554 #44554
User since
2005-04-13
625 Artikel
BenutzerIn
[Homepage] [default_avatar]
vielleicht in etwa so:
Code: (dl )
1
2
3
$main->repeat(1000, sub { $log = qx(tail -f /var/log/messages) });

$main->Label(-textvariable => $log)->pack();
perl -Mstrict -Mwarnings -e 'package blub; sub new { bless {} } sub bar {my $self=shift; $self->{bla}="5065726c2d436f6d6d756e697479"; return $self->{bla};} my $foo=blub->new();print "Hallo ";print pack("H*",$foo->bar()); print "\n"'

http://perl-tutor.de
Crian
 2005-09-21 16:20
#44555 #44555
User since
2003-08-04
5870 Artikel
ModeratorIn
[Homepage]
user image
ich glaub das war keine Tk-Frage


und warum verwendest Du -f und lässt es trotzdem jede Sekunde aufrufen?\n\n

<!--EDIT|Crian|1127305277-->
s--Pevna-;s.([a-z]).chr((ord($1)-84)%26+97).gee; s^([A-Z])^chr((ord($1)-52)%26+65)^gee;print;

use strict; use warnings; Link zu meiner Perlseite
J-jayz-Z
 2005-09-21 16:21
#44556 #44556
User since
2005-04-13
625 Artikel
BenutzerIn
[Homepage] [default_avatar]
Stimmt, hab ich gesehen. Danach....
perl -Mstrict -Mwarnings -e 'package blub; sub new { bless {} } sub bar {my $self=shift; $self->{bla}="5065726c2d436f6d6d756e697479"; return $self->{bla};} my $foo=blub->new();print "Hallo ";print pack("H*",$foo->bar()); print "\n"'

http://perl-tutor.de
Crian
 2005-09-21 16:58
#44557 #44557
User since
2003-08-04
5870 Artikel
ModeratorIn
[Homepage]
user image
:D
s--Pevna-;s.([a-z]).chr((ord($1)-84)%26+97).gee; s^([A-Z])^chr((ord($1)-52)%26+65)^gee;print;

use strict; use warnings; Link zu meiner Perlseite
format_c
 2005-09-21 17:34
#44558 #44558
User since
2003-08-04
1706 Artikel
HausmeisterIn
[Homepage] [default_avatar]
Schau mal einer guck.
Aus den Tiefen des Boards hab ich doch noch den Beitrag gefunden. Dazu hat Strat schon mal was geschrieben
http://board.perl-community.de/cgi-bin....hl=tail

Gruß Alex
<< >> 6 Einträge, 1 Seite



View all threads created 2005-09-12 23:57.