Hinweis: Das Forum wird geschlossen! Neue Registrierungen sind nicht mehr möglich!

 Zurück zu Pro-Linux   Foren-Übersicht   FAQ     Suchen    Mitgliederliste
Pipe - Buffer

 
Neuen Beitrag schreiben   Auf Beitrag antworten    Pro-Linux Foren-Übersicht -> Programmieren - Allgemein
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
falko



Anmeldungsdatum: 04.02.2000
Beiträge: 18

BeitragVerfasst am: 27. Jun 2000 13:04   Titel: Pipe - Buffer

Hi ihrs

ich haette da gern mal ein problem ..

letztens habe ich mir ein shellskript gebastelt mit dem ich einen htmlchat im xterm nutzen kann

alles schoen und gut ..

laeuft auch

ABER: <-- waer ja sonst zu schoen


wget -O - url.de/bla

zeigt auch fein alles an natuerlich mit htmlkram

diese ding pipe ich nun in ein perlskript um die htmlteile rauszzubekommen funktioniert einwandfrei

nur sobald ich von wget -O - url
irgendwie pipe oder in eine datei schreibe cached linux die daten und ich kriege vom chat nur alle 40 sekunden alles auf einmal
das is exrem unpraktisch ..

dabei isses egal ob ich

wget .. |perlskrip
wget .. >datei
wget -O datei ..
wget .. |tee bla
wget .. |sed ...
lynx -dump |irgendwas (der zeigt naemlich auch den quelltext auch bei -force_html)

benutze ..

ergo musses entweder an der pipe liegen oder am cache selbst (falls auch pipehandles gecacht werden kenn mich da net allzugut aus)

hat da irgendwer loesungsideen ?
 
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden

hjb
Pro-Linux


Anmeldungsdatum: 15.08.1999
Beiträge: 3236
Wohnort: Bruchsal

BeitragVerfasst am: 28. Jun 2000 22:12   Titel: Re: Pipe - Buffer

hi,

ich weiß nicht, ob ich es ganz verstanden habe, aber das Problem ist wohl, daß wget seine Ausgabe puffert? Dann mußt du wohl wget hacken...

Gruß,
hjb
_________________
Pro-Linux - warum durch Fenster steigen, wenn es eine Tür gibt?
 
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen MSN Messenger

falko



Anmeldungsdatum: 04.02.2000
Beiträge: 18

BeitragVerfasst am: 29. Jun 2000 10:26   Titel: Re: Pipe - Buffer

seltsamerweise wird bei

wget -O - url.de/bla

der text genau in der richtigen geschwindigkeit auf der konsole
ausgegeben erst duc die pipe wird das teil verlangsamt ..

kann ein programm erkennen
ob seine ausgabe (die ja in der richtigen geschwindigkeit ist) in eine pipe kommt ?


PS:
warum klappt
print "GET /bla
"|telnet url.de 80

nicht ?


Zuletzt bearbeitet von falko am 29. Jun 2000 10:26, insgesamt 1-mal bearbeitet
 
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden

Jochen
Gast





BeitragVerfasst am: 03. Jul 2000 9:44   Titel: Re: Pipe - Buffer

Typischerweise wissen Programme, die auf stdout schreiben, nicht das geringste davon, wo die Daten letztendlich landen: Pipe, Datei, Terminal... Ganz egal. Dein Problem dürfte darin begründet liegen, dass beim Schreiben auf ein Terminal "nur" über die line discipline gebuffert wird (tty1-tty12, ttyS[01] sind ja schliesslich character device files). Also nur zeilenweises Buffern; wird das tty explizit in CBREAK oder RAW Modus versetzt, wird gar nicht mehr gebuffert und die Zeichen kommen einzeln an. Sobald aber in "andere" Dateien geschrieben wird (normale Files, Pipes, block device files,...) wird wesentlich aggressiver gebuffert.

Ggf. ist es am einfachsten, tatsächlich wget zu hacken, ein fflush() nach den Ausgabe-printf()s könnte es vielleicht schon richten...

Zum P.S.: Entweder die Anfrage muss ganz korrekt "GET /bla HTTP/1.0" lauten, oder Dein telnet-Client unterstützt das Lesen von stdin nicht. Kommt häufiger vor, weiss nicht, wie sich der Linux-telnet da verhält. Statt dessen einfach nc nehmen (netcat). Löst aber Dein Buffer-Problem nicht, da die Daten - ob nun aus telnet oder nc - irgendwie durch die gebufferte Pipe laufen müssen.
 

falko



Anmeldungsdatum: 04.02.2000
Beiträge: 18

BeitragVerfasst am: 05. Jul 2000 21:10   Titel: Re: Pipe - Buffer

hey das wars ..

danke !
 
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden

Beiträge vom vorherigen Thema anzeigen:   
     Pro-Linux Foren-Übersicht -> Programmieren - Allgemein Alle Zeiten sind GMT + 1 Stunde
Seite 1 von 1

 
Gehen Sie zu:  

Powered by phpBB © phpBB Group
pro_linux Theme © 2004 by Mandaxy